上一页 1 2 3 4 5 6 7 ··· 9 下一页
摘要: 1.对象的数据结构非常简单 handle: 一次request期间对象的编号,每个对象都有一个唯一的编号,与创建先后顺序有关,主要在垃圾回收时用 ce: 所属类的zend_class_entry handlers: 这个保存的对象相关操作的一些函数指针,比如成员属性的读写、成员方法的获取、对象的销毁 阅读全文
posted @ 2018-05-28 23:37 helloworldlee 阅读(972) 评论(0) 推荐(0) 编辑
摘要: 1.PHP中类编译阶段的产物,而对象是运行时产生的,它们归属于不同阶段。一个类可以包含有属于自己的常量、变量(称为“属性”)以及函数(称为“方法”)。 2.首先我们看下类的数据结构: create_object为实例化对象的操作,可以通过扩展自定义一个函数来接管实例化对象的操作,没有定义这个函数的话 阅读全文
posted @ 2018-05-28 23:01 helloworldlee 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 1. Zend引擎主要包含两个核心部分:编译、执行: 执行阶段主要用到的数据结构: opcode: php代码编译产生的zend虚拟机可识别的指令,php7有173个opcode,定义在 zend_vm_opcodes.hPHP中的所有语法实现都是由这些opcode组成的。 zend_op_arra 阅读全文
posted @ 2018-05-28 19:12 helloworldlee 阅读(2867) 评论(0) 推荐(0) 编辑
摘要: 1.函数 汇编中函数对应的是一组独立的汇编指令,然后通过call指令实现函数的调用。PHP编译的opcode数组,与汇编指令对应。 PHP用户自定义函数的实现就是将函数编译为独立的opcode数组,调用时分配独立的执行栈依次执行opcode,所以自定义函数对于zend而言并没有什么特别之处,只是将o 阅读全文
posted @ 2018-05-28 18:53 helloworldlee 阅读(934) 评论(0) 推荐(0) 编辑
摘要: 1.php是解析型的高级语言,zend内核使用c语言实现,有main函数,php脚本就是输入,内核处理后输出结果,内核将php脚本翻译成c程序可识别的opcode就是php的编译。 c语言的编译将c代码编译成机器码,这些机器码就是操作指令,将指令写入二进制程序load相应的内存区(常量区 数据区 代 阅读全文
posted @ 2018-05-28 18:06 helloworldlee 阅读(8457) 评论(0) 推荐(0) 编辑
摘要: 1.静态变量的结构 php脚本编译之后会生成执行opcode组成的opcode_array,执行每个zend_op_array都会生成一个单独的zend_execute_data结构。 php的局部变量分配在zend_execute_data结构上,生命周期在opcoe_array执行开始分配,执行 阅读全文
posted @ 2018-05-28 17:21 helloworldlee 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 1.php的常量 就是一个简单的标识符,脚本执行期间不会改变,大小写敏感,默认大写。 常量的存储结构 flag代表的含义 : CONST_CS: 大小写敏感 CONST_PERSISTENT: 持久化的(只有通过扩展、内核定义的才支持,这种常量不会在request结束时清理掉) CONST_CT_S 阅读全文
posted @ 2018-05-28 16:16 helloworldlee 阅读(225) 评论(0) 推荐(0) 编辑
摘要: zval结构比较简单,内嵌一个union类型的zend_value保存具体变量类型的值或指针,zval中还有两个union:u1、u2: u1: 它的意义比较直观,变量的类型就通过u1.v.type区分,另外一个值type_flags为类型掩码,在变量的内存管理、gc机制中会用到,第三部分会详细分析 阅读全文
posted @ 2018-05-28 16:08 helloworldlee 阅读(1187) 评论(0) 推荐(0) 编辑
摘要: memached是高性能分布式内存对象系统,通过在内存中存储数据对象来减少对磁盘的数据读取次数,提高服务速度。 从业务需求出发。我们通过一条命令(如set)将一条键值对(key,value)插入memcached后,需要: 1、对该键值数据的高效索引; (memcached通过哈希表来对键值数据进行 阅读全文
posted @ 2018-05-27 16:32 helloworldlee 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 在前几年,大家一般用拼接字符串的方式来构造动态 SQL 语句创建应用,于是 SQL 注入成了很流行的攻击方式, 但是现在参数化查询 已经成了普遍用法,我们已经离 SQL 注入很远了。但是历史同样悠久的 XSS 和 CSRF 却任然存在。 XSS 全称“跨站脚本”,是注入攻击的一种。 其特点是不对服务 阅读全文
posted @ 2018-05-27 10:37 helloworldlee 阅读(189) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 9 下一页