文章列表

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

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

一个问题引发的 Nginx Rewrite 和 FastCGI 模块探索

July 31, 2016

问题背景 某日,线上出现了一个小问题。我们的 iOS 应用在上一次的发版中,由于测试不完整导致部分功能请求的接口 URL 出现了错误,业务功能受到了影响。鉴于 iOS 的审核机制,我们决定在服务端做兼容。 方案其实很简单,将类似如下请求转向新的地址: GET /foo => GET /foo/bar ...