CODE, ARCHITECTURE & AI

PHP源码阅读笔记.

12 篇记录保持好奇,慢慢积累

foreach的指针问题

在PHP中,foreach 语法结构提供了遍历数组的简单方式。 foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量,将导致错误。 foreach每次循环时,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。 但是手册中提醒我们: Note: 当 foreach 开始…
继续阅读 ↗

PHP的ticks机制

PHP的ticks机制 要过年了,在年前完成这篇文章,如果有缘可以看到,祝福看到的朋友新年快乐,在新的一年里,万事顺意! 按今年的计划每个月至少有两篇文章,而一月份因为各种理由而只有一篇2012的总结,无论什么原因,总归是不对的。这篇算是补上的,也作为今年的开始。 回正题,今天要研究的是PHP的ticks机制。 PHP提供declare关键字和ticks关键…
继续阅读 ↗

PHP的相似度计算函数:levenshtein

在之前的文章 << PHP中计算字符串相似度的函数 >> 中我们介绍了similar_text函数的使用及实现过程。similar_text() 函数主要是用来计算两个字符串的匹配字符的数目,也可以计算两个字符串的相似度(以百分比计)。与 similar_text() 函数相比,我们今天要介绍的 levenshtein() 函数更快。不过,similar_t…
继续阅读 ↗

PHP内核中的异常基类

PHP内核中的异常基类 在 <<思考PHP语言三:异常处理>> 中有说到异常的定义:异常处理是指在语言中能够使程序按照一种标准的方法对于某些运行时错误和其他程序所检测到的异常事件做出反应。异常发生的时间是不可以确定的,如果一种语言不包括异常处理机制,这就会给语言带来额外的复杂性。对于异常的处理有三种方案,而PHP5使用的是将一个异常处理独立出来,作为专门的子…
继续阅读 ↗

几个 PHP 的“魔术常量”

PHP向它运行的任何脚本提供了大量的预定义常量。 不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。 有七个魔术常量它们的值随着它们在代码中的位置改变而改变。例如 __LINE__ 的值就依赖于它在脚本中所处的行来决定。这些特殊的常量不区分大小写。在 手册 中这几个变量的简单说明如下: 几个 …
继续阅读 ↗

从PHP的自动测试想到的

从PHP的自动测试想到的 昨日,因TIPI项目而阅读了PHP的自动测试实现相关代码。于此,有些许感想,记录如下。 1、用自己测试自己,制定测试过程规范。 PHP的测试环境是用PHP实现的,这不得不说是一个创新之举。相对于编译型语言,作为动态语言的PHP在应对变化上有着不少的优势,而测试本来就是一个变化是非较多的地儿。其实用到了PHP的地方只是这个框架的控制器…
继续阅读 ↗