php
rich_family
这个作者很懒,什么都没留下…
展开
-
php常见魔术常量和魔术方法
常见的魔术常量有:__LINE__文件的当前行号__FILE__文件的完整路径和文件名__DIR__文件所在目录__FUNCTION__函数名称__CLASS__类的名称__METHOD__类的方法名常见的魔术方法有:__construct构造函数,当对象被实例化时会被调用__destruct析构函数,当对象被销毁时会被调用__get当读取不存在的属性的值时原创 2017-03-18 13:14:00 · 338 阅读 · 0 评论 -
php7之变量
变量都保存在zval结构体中。 1. zval结构变化 变成了zend_value和两个union,其中一个记录类型相关,另一个记录扩展信息。 结构体中占用空间变小,8+4+4=16共16字节,相比原来48字节,减少2/3空间,效率提升起到关键作用。 2. zend_value变化,zend_value记录变量值,整形和双精度数据不使用指针减少数据存取操作。其它数据类型使用原创 2018-01-28 14:52:57 · 649 阅读 · 0 评论 -
php7之hashtable
作为php的重要数据结构,本博记录一下hashtable的结构,存储,hash定位等问题。hashtable结构,是有56个字节组成等struct,如下:struct _zend_array { zend_refcounted_h gc; union { struct { ZEND_ENDIAN_LOHI_4(原创 2018-01-28 13:11:28 · 443 阅读 · 0 评论 -
php生成器
生成器提供了一种更容易的方法来实现对象迭代,相比定义类实现Iterator接口的方式,性能开销和复杂性大大降低。生成器允许你在foreach代码块来迭代一组数据而不需要在内存中创建一个数组,那会使你内存达到上限,比如一个非常庞大的数据,或者占有很多的处理时间。如果用一个生成器函数,和普通的自定义函数很像,只不过普通函数返回一次,而生成器函数可以根据需要yeild多次,以便生成需要迭代的值。原创 2018-01-03 20:28:25 · 166 阅读 · 0 评论 -
php7新特性及升级
1、变量处理机制修改 a、间接变量、属性和方法引用都是从左到右顺序解释; b、global关键字只能引用简单变量; c、用括号把函数扩起来还是会报错; d、引用赋值时自动创建的数组元素或对象属性顺序和以前不同 2、list变化 a、list不再按相反顺序赋值;原创 2017-03-21 21:57:57 · 436 阅读 · 0 评论 -
php内存管理之垃圾回收机制
每个php变量都存在一个zval变量容器中,容器除了包含变量的类型和值外,还有is_ref是否属于引用还有个refcount引用计数,当把一个变量赋值给另一个变量将增加引用次数,在变量被unset或者离开它的作用域时,引用计数减1,当引用计数减为0时,内存回收。但这样的机制在循环引用时存在内存泄漏。例:当把一个数组本身当做一个数组元素时,就出现如图:当数组a被unset之后,就原创 2017-03-18 18:24:14 · 467 阅读 · 0 评论 -
php内存管理之内存分配
鉴于系统开销的调用,一些对性能有要求的应用通常会在自己的用户态进行内存管理,比如在第一次申请一块较大的内存留着备用,而不是使用完马上还给操作系统,可以进行复用,避免多次申请和释放带来的开销。一般读取超大文件到内存、超大数组、大循环内存没有释放等都会出现内存占用过大。php.ini 通过memery_limit或者在代码里ini_setl来设置最大内存php内存是通过zendmm来进原创 2017-03-18 14:44:37 · 1769 阅读 · 0 评论 -
php中数组+和array_merge区别
主要区别在与两个或多个数组在合并时,出现相同的键名时处理方式不一样一、当键名为数字时,array_merge不会覆盖原来的值,+会抛弃后面的值<?php/** * Created by PhpStorm. * User: lzc * Date: 2017/3/18 * Time: 10:02 */$a = [1,2,3];$b = [4,5,6];var_dump($a+$b原创 2017-03-18 14:25:38 · 1679 阅读 · 0 评论 -
为什么PHP中in_array效率低
这个问题主要原因是in_array判断某个值是否存在数组中,对比时会把值类型转化成一致的类型进行比较,如此一来效率就慢很多。具体参考http://www.zendstudio.net/archives/php-in_array-s-low-performance/#more-1836原创 2017-03-18 13:56:23 · 2431 阅读 · 1 评论 -
php for循环和foreach区别
php中for循环和foreach区别如下:1、for需要先知道数组长度再操作,foreach不需要2、foreach效率比for高很多,主要原因是for要进行很多次条件判断,另外从数组变量的数据结构来看foreach直接通过结构体中next指针获取下一个值,而for循环需要根据key先进行一次hash才得到值。原创 2017-03-18 13:40:15 · 1367 阅读 · 0 评论 -
php中isset和empty区别
php基础,isset和empty原创 2017-03-18 09:57:59 · 454 阅读 · 0 评论 -
php面试指导
php面试1对1指导,请加微信:prince_lzc,备注请写csdn面试指导原创 2018-08-03 11:21:34 · 209 阅读 · 0 评论