会员
周边
新闻
博问
闪存
众包
赞助商
YouClaw
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
Orlion
https://blog.fanscore.cn
博客园
首页
新随笔
联系
管理
订阅
随笔分类 -
深入理解PHP内核
PHP新的垃圾回收机制:Zend GC详解
摘要:概述 在5.2及更早版本的PHP中,没有专门的垃圾回收器GC(Garbage Collection),引擎在判断一个变量空间是否能够被释放的时候是依据这个变量的zval的refcount的值,如果refcount为0,那么变量的空间可以被释放,否则就不释放,这是一种非常简单的GC实现。然而在这种简单
阅读全文
posted @
2016-04-03 21:40
orlion
阅读(5876)
评论(0)
推荐(2)
深入理解PHP内核(十四)类的成员变量及方法
摘要:原文链接:http://www.orlion.ga/1237/ 类的成员变量在PHP中本质是一个变量,只是这些变量都归属于某个类,并且给这些变量是有访问控制的。 类的成员方法在PHP中本质是一个函数,只是这个函数以类的方法存在,他可能是一个类方法也可能是一个实例方法,并且在这些方法都加上了类的访问控
阅读全文
posted @
2016-04-01 10:58
orlion
阅读(3465)
评论(0)
推荐(0)
opcode的执行
摘要:原文链接:http://www.orlion.ga/1001/ 当.php文件被编译为opcode后,下一步的执行并非是把opcode编译为机器码而是类似于如下的方式执行: 具体参见知乎上的这个问题:https://www.zhihu.com/question/41249519
阅读全文
posted @
2016-04-01 10:57
orlion
阅读(346)
评论(0)
推荐(0)
深入理解PHP内核(十三)类的结构和实现
摘要:原文链接:http://www.orlion.ga/1117/ 先看一下类的结构: 类的结构中,type有两种类型,数字标记为1和2。分别为宏定义,分别是内置的类和用户自定义的类 父类和接口都是存在struct _zend_class_entry中,即接口也是已类的形式存在,类的常规成员方法放在函数
阅读全文
posted @
2016-04-01 10:57
orlion
阅读(1308)
评论(0)
推荐(0)
【转】中间代码opcode的执行
摘要:原文链接:http://www.orlion.ga/941/ 原文:http://www.nowamagic.net/librarys/veda/detail/1543 假如我们现在使用的是CLI模式,直接在SAPI/cli/php_cli.c文件中找到main函数, 默认情况下PHP的CLI模式的
阅读全文
posted @
2016-04-01 10:56
orlion
阅读(651)
评论(0)
推荐(0)
深入理解PHP内核(十二)函数-函数的定义、传参及返回值
摘要:原文链接:http://www.orlion.ga/344/ 一、函数的定义 用户函数的定义从function 关键字开始,如下 1、词法分析 在Zend/zend_language_scanner.l中我们找到如下所示的代码: 它所表示的含义是function将会生成T_FUNCTION标记。在获
阅读全文
posted @
2016-04-01 10:55
orlion
阅读(447)
评论(0)
推荐(0)
深入理解PHP内核(十一)函数-函数的内部结构
摘要:原文链接:http://www.orlion.ga/330/ php的函数包括用户定义的函数、内部函数(print_r count…)、匿名函数、变量函数($func = 'print_r'; $func(array('a','b'));) PHP内核源码中将函数分为以下类型 一、用户函数(ZEND
阅读全文
posted @
2016-04-01 10:54
orlion
阅读(708)
评论(0)
推荐(0)
深入理解PHP内核(九)变量及数据类型-静态变量
摘要:原文链接:http://www.orlion.ga/251/ 通常静态变量是静态分配的,他们的生命周期和程序的生命周期一样长,只有在程序退出后才结束生命周期,这和局部变量相反,有的语言中全局变量也是静态分配的,例如PHP和js中的全局变量。 静态变量可以分为: 静态全局变量,PHP中的全局变脸也可以
阅读全文
posted @
2016-04-01 10:53
orlion
阅读(530)
评论(0)
推荐(0)
深入理解PHP内核(十)变量及数据类型-类型提示的实现
摘要:原文链接:http://www.orlion.ga/253/ PHP是弱类型语言,向方法传递参数时也并不严格检查数据类型。不过有时候需要判断传递到方法中的参数,为此PHP中提供了一些函数来判断数据的类型,比如is_numeric()判断是否是一个数值或者可转换为数值的字符串,比如用于判断对象的类型运
阅读全文
posted @
2016-04-01 10:53
orlion
阅读(342)
评论(0)
推荐(0)
深入理解PHP内核(八)变量及数据类型-预定义变量
摘要:原文链接:http://www.orlion.ga/249/ PHP脚本在执行的时候用户全局变量(在用户空间显示定义的变量)会保存在一个HashTable数据类型的符号表中(symbol_table)中,在PHP中有一些比较特殊的全局变量例如:$_GET、$_POST、$_SERVER等变量,我们并
阅读全文
posted @
2016-04-01 10:52
orlion
阅读(532)
评论(0)
推荐(0)
深入理解PHP内核(七)变量及数据类型-常量
摘要:原文链接:http://www.orlion.ga/246/ 在PHP中,常量的名字是一个简单值的标识符,在脚本执行期间该值不能改变。和变量一样,常量默认为大小写敏感,但是通常是大写的。 常量是在变量的zval结构的基础上添加了一额外的元素。如下所示为PHP中常量的内部结构。 一、常量的内部结构 在
阅读全文
posted @
2016-04-01 10:51
orlion
阅读(508)
评论(0)
推荐(0)
深入理解PHP内核(六)哈希表以及PHP的哈希表实现
摘要:原文链接:http://www.orlion.ga/241/ 一、哈希表(HashTable) 大部分动态语言的实现中都使用了哈希表,哈希表是一种通过哈希函数,将特定的键映射到特定值得一种数据 结构,它维护键和值之间一一对应关系。 键(key):用于操作数据的标示,例如PHP数组中的索引或者字符串键
阅读全文
posted @
2016-04-01 10:49
orlion
阅读(2012)
评论(0)
推荐(0)
深入理解PHP内核(五)变量及数据类型-变量的结构和类型
摘要:原文链接:http://www.orlion.ga/238/ 编程语言的类型可以分为强类型和弱类型两种,PHP是弱类型语言,但是C语言是强类型语言。在官网PHP实现内部,所有变量使用同一种数据结构(zval)来保存,这个结构表示PHP中的各种数据类型,它不仅包含变量的值,也包含变量的类型。这就是PH
阅读全文
posted @
2016-03-25 09:49
orlion
阅读(2097)
评论(0)
推荐(0)
深入理解PHP内核(四)概览-PHP脚本的执行
摘要:本文链接:http://www.orlion.ml/236/下面以php命令行程序为例解释PHP脚本是怎么被执行的。例如如下脚本:假设这段代码保存在hello.php文件中,在命令行中执行:$ php ./hello.php会输出hello world,那么在执行脚本的时候PHP/Zend都做了什么...
阅读全文
posted @
2016-01-25 15:10
orlion
阅读(661)
评论(0)
推荐(0)
深入理解PHP内核(三)概览-SAPI概述
摘要:本文链接:http://www.orlion.ml/234/1、在PHP生命周期的各个阶段,一些与服务相关的操作都是通过SAPI接口实现。这些内置实现的物理位置在PHP源码的SAPI目录。这个目录存放了PHP对各个服务器抽象层的代码,例如命令行程序的实现,Apache的mod_php模块实现以及fa...
阅读全文
posted @
2016-01-25 14:00
orlion
阅读(5772)
评论(0)
推荐(1)
深入理解PHP内核(二)概览-PHP生命周期与Zend引擎
摘要:本文参考自《深入理解PHP内核》,地址:https://github.com/reeze/tipi本文链接:http://www.orlion.ml/232/1、SAPI接口SAPI(Server Application Programming Interface)指的是PHP具体应用的编程接口。P...
阅读全文
posted @
2016-01-25 13:58
orlion
阅读(2061)
评论(0)
推荐(1)
PHP内核(一)内存管理
摘要:本文链接:http://www.orlion.ml/tag/php-internal/一、内存管理基础用c语言开发时,开发者要手动进行内存管理。PHP经常作为web服务器的模块,内存管理与预防内存泄露紧密关联。另外PHP可能用于线程环境中,所以全局变量可能导致竞争情况。此外Zend引擎面对一个十分特...
阅读全文
posted @
2016-01-22 17:36
orlion
阅读(1536)
评论(1)
推荐(0)
公告