摘要:
原文链接:http://www.orlion.ga/1237/ 类的成员变量在PHP中本质是一个变量,只是这些变量都归属于某个类,并且给这些变量是有访问控制的。 类的成员方法在PHP中本质是一个函数,只是这个函数以类的方法存在,他可能是一个类方法也可能是一个实例方法,并且在这些方法都加上了类的访问控 阅读全文
摘要:
原文链接:http://www.orlion.ga/1001/ 当.php文件被编译为opcode后,下一步的执行并非是把opcode编译为机器码而是类似于如下的方式执行: 具体参见知乎上的这个问题:https://www.zhihu.com/question/41249519 阅读全文
摘要:
原文链接:http://www.orlion.ga/1117/ 先看一下类的结构: 类的结构中,type有两种类型,数字标记为1和2。分别为宏定义,分别是内置的类和用户自定义的类 父类和接口都是存在struct _zend_class_entry中,即接口也是已类的形式存在,类的常规成员方法放在函数 阅读全文
摘要:
原文链接:http://www.orlion.ga/941/ 原文:http://www.nowamagic.net/librarys/veda/detail/1543 假如我们现在使用的是CLI模式,直接在SAPI/cli/php_cli.c文件中找到main函数, 默认情况下PHP的CLI模式的 阅读全文
摘要:
原文链接:http://www.orlion.ga/344/ 一、函数的定义 用户函数的定义从function 关键字开始,如下 1、词法分析 在Zend/zend_language_scanner.l中我们找到如下所示的代码: 它所表示的含义是function将会生成T_FUNCTION标记。在获 阅读全文
摘要:
原文链接:http://www.orlion.ga/330/ php的函数包括用户定义的函数、内部函数(print_r count…)、匿名函数、变量函数($func = 'print_r'; $func(array('a','b'));) PHP内核源码中将函数分为以下类型 一、用户函数(ZEND 阅读全文
摘要:
原文链接:http://www.orlion.ga/251/ 通常静态变量是静态分配的,他们的生命周期和程序的生命周期一样长,只有在程序退出后才结束生命周期,这和局部变量相反,有的语言中全局变量也是静态分配的,例如PHP和js中的全局变量。 静态变量可以分为: 静态全局变量,PHP中的全局变脸也可以 阅读全文
摘要:
原文链接:http://www.orlion.ga/253/ PHP是弱类型语言,向方法传递参数时也并不严格检查数据类型。不过有时候需要判断传递到方法中的参数,为此PHP中提供了一些函数来判断数据的类型,比如is_numeric()判断是否是一个数值或者可转换为数值的字符串,比如用于判断对象的类型运 阅读全文
摘要:
原文链接:http://www.orlion.ga/249/ PHP脚本在执行的时候用户全局变量(在用户空间显示定义的变量)会保存在一个HashTable数据类型的符号表中(symbol_table)中,在PHP中有一些比较特殊的全局变量例如:$_GET、$_POST、$_SERVER等变量,我们并 阅读全文
摘要:
原文链接:http://www.orlion.ga/246/ 在PHP中,常量的名字是一个简单值的标识符,在脚本执行期间该值不能改变。和变量一样,常量默认为大小写敏感,但是通常是大写的。 常量是在变量的zval结构的基础上添加了一额外的元素。如下所示为PHP中常量的内部结构。 一、常量的内部结构 在 阅读全文
摘要:
原文链接:http://www.orlion.ga/241/ 一、哈希表(HashTable) 大部分动态语言的实现中都使用了哈希表,哈希表是一种通过哈希函数,将特定的键映射到特定值得一种数据 结构,它维护键和值之间一一对应关系。 键(key):用于操作数据的标示,例如PHP数组中的索引或者字符串键 阅读全文