转到正文

博客水木

一个学习总结与工作经验分享博客。

存档

标签: 探索

在5.2及更早版本的PHP中,没有专门的垃圾回收器GC(Garbage Collection),引擎在判断一个变量空间是否能够被释放的时候是依据这个变量的zval的refcount的值,如果refcount为0,那么变量的空间可以...

变量的内部引用和计数
在引擎内部,一个PHP的变量是保存在“zval”结构中,此结构包含了变量的类型和值信息,此结构还有另外两个字段信息,一个是"is_ref"(此字段在5.3.2版本中是is_ref_...

解释器引擎最终执行op的函数是zend_execute,实际上zend_execute是一个函数指针,在引擎初始化的时候zend_execute默认指向了execute,这个execute定义在{PHPSRC}/Zend/zend_vm_execute.h:
ZEND_API void execute(zen...

PHP语言作为脚本语言的一种,由于不需要进行编译,所以通常PHP程序的分发都是直接发布源代码。 对于一些开源软件来说,这并没有什么问题,因为它本来就希望有更多的人阅读代码,希望...

假如我们现在使用的是CLI模式,直接在SAPI/cli/php_cli.c文件中找到main函数, 默认情况下PHP的CLI模式的行为模式为PHP_MODE_STANDARD。 此行为模式中PHP内核会调用php_execute_script(&file_handle TSRMLS_CC);...

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

语言从广义上来讲是人们进行沟通交流的各种表达符号。每种语言都有专属于自己的符号,表达方式和规则。 就编程语言来说,它也是由特定的符号,特定的表达方式和规则组成。 语言的作...

通过前面的学习,我们了解到一个PHP文件在服务器端的执行过程包括以下两个大的过程:

递给php程序需要执行的文件, php程序完成基本的准备工作后启动PHP及Zend引擎, 加载注册的扩展...

讲述之前,先描述下{资源}类型在内核中的结构:
//每一个资源都是通过它来实现的。
typedef struct _zend_rsrc_list_entry
{
void *ptr;
int type;
int refcount;
}zend_rsrc_...

在定义一个类时往往会使其继承某个父类或者实现某个接口,在扩展中实现这个功能非常方便。下面我先给出PHP语言中的代码。
<?php
interface i_myinterface
{
public function hello(...

无觅相关文章插件,快速提升流量