PHP
Anoneymous
这个作者很懒,什么都没留下…
展开
-
PHP内核探索之变量(1)Zval
作为数据的容器,我们常常需要跟变量打交道,不管这个变量是数字、数组、字符串、对象还是其他,因而可以说变量是构成语言的不可或缺的基础。本文是PHP内核探索之变量的第一篇,主要介绍zval的基本知识,包括如下几个方面的内容: Zval的基本结构查看zval的方法:debug_zval_dump和xdebugZval的原理,COW等 由于写作仓促,难免会有错误,欢迎指出。 一、Zval转载 2017-04-01 16:57:20 · 294 阅读 · 0 评论 -
PHP内核探索之变量(2)-理解引用
本文主要内容: 引论符号表与zval引用原理回到最初的问题 一、引论 很久之前写了一篇关于引用的文章,当时写的寥寥草草,很多原理都没有说清楚。最近在翻阅Derick Rethans(home: http://derickrethans.nl/ Github: https://github.com/derickr)大牛之前做的报告时,发现了一篇讲解PHP引用机制的文章,也就是这转载 2017-04-01 16:59:52 · 416 阅读 · 0 评论 -
PHP内核探索之变量(3)- hash table
在PHP中,除了zval, 另一个比较重要的数据结构非hash table莫属,例如我们最常见的数组,在底层便是hash table。除了数组,在线程安全(TSRM)、GC、资源管理、Global变量、ini配置管理中,几乎都有Hash table的踪迹(上一次我们也提到,符号表也是使用Hash table实现的)。那么,在PHP中,这种数据有什么特殊之处,结构是怎么实现的? 带着这些问题,我们开转载 2017-04-01 17:01:44 · 214 阅读 · 0 评论 -
PHP内核探索之变量(5)- session的基本原理
session可以说是当前互联网提到的最多的名词之一了。它的含义很宽泛,可以指任何一次完整的事务交互(会话):如发送一次HTTP请求并接受响应,执行一条SQL语句都可以看做一次Session。如无特殊说明,本文中提到的Session单指HTTP会话。 本文是PHP内核探索的第五篇,主要包含如下几个方面的内容: 背景知识和session基础PHP中session的原理参考文献 一、转载 2017-04-01 17:03:12 · 207 阅读 · 0 评论 -
PHP内核探索之变量(6)- 后续内核探索系列大纲备忘
为了不至于过于发散,先搞个未成形的大纲,如下: PHP内核探索之变量 不平凡的字符串 PHP内核探索之变量 变量的生命周期、类型转换 PHP内核探索之变量 变量的循环(foreach,其实放到Zend部分更加合理一些) PHP内核探索之SAPI (比较疑惑,为什么这么靠后? ) PHP内核探索之函数 (函数实现原理、用户函数和系统函数,性能) PHP内核探索之扩展转载 2017-04-01 17:04:26 · 215 阅读 · 0 评论 -
PHP内核探索之变量(7)- 不平凡的字符串
(1) 在C语言中,strlen计算字符串的时间复杂度是?PHP中呢? (2) 在PHP中,怎样处理多字节字符串?PHP对unicode的支持如何? 同样是字符串,为什么c语言与C++/PHP/Java的均不相同? 数据结构决定算法,这句话一点不假。 那么我们今天就来掰一掰,PHP中的字符串结构,以及相关字符串函数的实现。 一、 字符串基础转载 2017-04-01 17:05:45 · 210 阅读 · 0 评论 -
PHP内核探索之变量(4)- 数组操作
本文主要内容: PHP中提供的数组操作函数数组操作函数的实现结语参考文献 一、PHP中提供的数组操作函数 可以说,数组是PHP中使用最广泛的数据结构之一,正因如此,PHP为开发者提供了丰富的数组操作函数(参见http://cn2.php.net/manual/en/ref.array.php ), 大约有80个,这对于绝大多数的数组操作而言,已经足够了。如果按照数组操作的转载 2017-04-01 17:11:51 · 245 阅读 · 0 评论