文章列表

PHP 内核分析:类与对象

February 01, 2017

类是什么,什么是对象,相信不需要我在这里解释。本文也不是要说什么OO思想,而是想探究一个问题。作为 PHP 底层的实现 C 语言,是一个面向过程的语言,C 语言是如何构建出可以使用类与对象的 PHP(PHP 绝对称不上是面向对象的语言),这就是本文探讨的重点。为了方便查阅,也方便说明,以下所涉及的源码和实现均来源...

PHP 内核分析:变量

January 15, 2017

变量 变量的数据结构 变量保存在 zval 的结构体中(与 PHP5 相同,但数据结构做了很大改变)。zval 结构体定义在 Zend/zend_types.h 文件中,结构体如下: typedef struct _zval_struct zval; struct _zval_struct { ...

[译] PHP7 数组:HashTable

November 17, 2016

简介 几乎每个C程序中都会使用到哈希表。鉴于C语言只允许使用整数作为数组的键名,PHP 设计了哈希表,将字符串的键名通过哈希算法映射到大小有限的数组中。这样无法避免的会产生碰撞,PHP 使用了链表解决这个问题。 众多哈希表的实现方式,无一完美。每种设计都着眼于某一个侧重点,有的减少了 CPU 使用率,有的更合...

组织者的困境

November 06, 2016

上周,公司组织去八大处香山的一次徒步拓展活动。大家被分成了几个小组,小组的任务是所有组员都完成15公里的徒步行程。我是其中一组的小组长。作为小组长,组织大家一起完成任务,保证没有成员掉队。我把自己定位为后勤人员,自己负责垫后,帮助落后的小伙伴,给他们打气。结果有些同学走的比较快,导致和整个队伍脱节,有的同学走...

藏在爱的外衣下的自私

August 02, 2016

我的孩子已经八个月大了。有一天,我和他在床上玩耍,发现他对婴儿用的抽纸特别感兴趣,喜欢不停地把纸抽出来。看到这样的场景,我下意识地将抽纸从他的身边拿开。过了一会,我突然意识到,我刚才的那“不经意”的行为犯了一个错误。我赶紧将抽纸重新拿回他的跟前,看着他乐此不疲的一张张把纸抽出来玩。 事后,我重新思考了几个问...