php
rich_family
这个作者很懒,什么都没留下…
展开
-
php常见魔术常量和魔术方法
常见的魔术常量有: __LINE__文件的当前行号 __FILE__文件的完整路径和文件名 __DIR__文件所在目录 __FUNCTION__函数名称 __CLASS__类的名称 __METHOD__类的方法名 常见的魔术方法有: __construct构造函数,当对象被实例化时会被调用 __destruct析构函数,当对象被销毁时会被调用 __get当读取不存在的属性的值时原创 2017-03-18 13:14:00 · 331 阅读 · 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 · 642 阅读 · 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 · 438 阅读 · 0 评论 -
php生成器
生成器提供了一种更容易的方法来实现对象迭代,相比定义类实现Iterator接口的方式,性能开销和复杂性大大降低。 生成器允许你在foreach代码块来迭代一组数据而不需要在内存中创建一个数组,那会使你内存达到上限,比如一个非常庞大的数据, 或者占有很多的处理时间。如果用一个生成器函数,和普通的自定义函数很像,只不过普通函数返回一次,而生成器函数可以根据需要yeild多次,以便生成需要迭代的值。原创 2018-01-03 20:28:25 · 156 阅读 · 0 评论 -
php7新特性及升级
1、变量处理机制修改 a、间接变量、属性和方法引用都是从左到右顺序解释; b、global关键字只能引用简单变量; c、用括号把函数扩起来还是会报错; d、引用赋值时自动创建的数组元素或对象属性顺序和以前不同 2、list变化 a、list不再按相反顺序赋值;原创 2017-03-21 21:57:57 · 431 阅读 · 0 评论 -
php内存管理之垃圾回收机制
每个php变量都存在一个zval变量容器中,容器除了包含变量的类型和值外,还有is_ref是否属于引用 还有个refcount引用计数,当把一个变量赋值给另一个变量将增加引用次数,在变量被unset或者离开 它的作用域时,引用计数减1,当引用计数减为0时,内存回收。但这样的机制在循环引用时存在内存 泄漏。 例:当把一个数组本身当做一个数组元素时,就出现如图: 当数组a被unset之后,就原创 2017-03-18 18:24:14 · 466 阅读 · 0 评论 -
php内存管理之内存分配
鉴于系统开销的调用,一些对性能有要求的应用通常会在自己的用户态进行内存管理,比如在第一次申请一块较大的内存留着 备用,而不是使用完马上还给操作系统,可以进行复用,避免多次申请和释放带来的开销。 一般读取超大文件到内存、超大数组、大循环内存没有释放等都会出现内存占用过大。 php.ini 通过memery_limit或者在代码里ini_setl来设置最大内存 php内存是通过zendmm来进原创 2017-03-18 14:44:37 · 1752 阅读 · 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 · 1657 阅读 · 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 · 2381 阅读 · 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 · 1335 阅读 · 0 评论 -
php中isset和empty区别
php基础,isset和empty原创 2017-03-18 09:57:59 · 444 阅读 · 0 评论 -
php面试指导
php面试1对1指导,请加微信:prince_lzc,备注请写csdn面试指导原创 2018-08-03 11:21:34 · 203 阅读 · 0 评论