您的位置:首页 > PHP 内核 扩展 程序 项目管理

PHP的语法分析器-Bison入门

Bison是一种通用目的的分析器生成器。它将LALR(1)上下文无关文法的描述转化成分析该文法的C程序。 使用它可以生成解释器,编译器,协议实现等多种程序。 Bison向上兼容Yacc,所有书写正确... 阅读全文

前端控制器

前端控制器
表现层的请求处理机制需要支持每个用户多个请求,我们可以以集中式或分散式的方式管理这些请求。
如果以分散的方式进行管理可能会导致如下的一些问题:

每... 阅读全文

PHP的词法解析器:re2c

re2c是一个扫描器制作工具,可以创建非常快速灵活的扫描器。它可以产生高效代码,基于C语言,可以支持C/C++代码。 与其它类似的扫描器不同,它偏重于为正则表达式产生高效代码(和他的... 阅读全文

项目延期和重构

项目背景及延期原因分析
这是一个用作宣传的系统,它由客户端,Flash端,服务端三部分组成, 客户端放在客户机器上,实现一些本地的播放及相关操作; Flash端被嵌入到客户端中,调... 阅读全文

以数组形式访问对象的成员变量

在Yii框架中我们可以直接以数组的方式访问对象的成员变量,查看其源码得这些类都实现了ArrayAccess接口。 如果你想让一个类的实例可以以数组的方式访问,实现ArrayAccess接口就可以了。如下... 阅读全文

PHP的类自动加载机制

在PHP5之前,各个PHP框架如果要实现类的自动加载,一般都是按照某种约定自己实现一个遍历目录,自动加载所有符合约定规则的文件的类或函数。 当然,PHP5之前对面向对象的支持并不是太... 阅读全文

关于耦合

在做程序设计时我们经常会听到“高内聚,低耦合”,这是我们追求的目标。 其中内聚是指一个模块内各个元素彼此结合的紧密程度, 高内聚是指一个模块或一个类内部各个元素之间关系紧... 阅读全文

PHP内核中用户函数、内部函数和中间代码的转换

昨天和一朋友在邮件中讨论这样一个问题:zend_internal_function,zend_function,zend_op_array这三种结构是可以相互转化的,这三者的转化是如何进行的呢? 以此文,总结。
在函数调用的执行代... 阅读全文

TIPI第六章发布

人生在世,如身处荆棘之中!心不动,人不妄动,不动则不伤。如心动,则人妄动,伤其身,痛其骨,于是体会到世间诸般痛苦。
选择在这个宜嫁娶、宜开光、宜安床的日子里,我们将... 阅读全文

PHP的比较方式(loose and strict comparison)

PHP的官方文档PHP type comparison tables 列出PHP类型和比较运算符在松散和严格比较时的作用。当阅读这篇说明时, 其中有一个NOTE:HTML 表单并不传递整数、浮点数或者布尔值,它们只传递字符串... 阅读全文

关于缓存

在维基百科中有这样一段描述: 凡是位于速度相差较大的两种硬件之间的,用于协调两者数据传输速度差异的结构,均可称之为Cache。 从最初始的处理器与内存间的Cache开始,都是为了让数... 阅读全文

关于Mixin和Trait

其实在想文章题目时,有过纠结,虽然现在有些人将Mixin翻译为“混入”,不过感觉有点怪怪的,所以还是直接用了英文,至少不会出错。 言归正转。
现在排名靠前的面向对象的编程语... 阅读全文

你可能不了解的strtotime函数

在前面的文章中, 我们提到strtotime函数在使用strtotime(”-1 month”)求上一个月的今天时会出一些状况,
因此也引出写这篇文章,本文包括如下内容:

strtotime函数的一些用法
阅读全文