网站首页
Veda 原型
互联网资讯
魔法图书馆
晚上八点
订阅
邮件
Veda 原型
成功,唯有积累,没有奇迹
编程语言
PHP服务器脚本
Python程序设计
Java编程语言
C/C++编程语言
前端设计
HTML/HTML 5
CSS层叠样式表
JavaScript
JQuery
Ajax技术
Flex/ActionScript
计算机基础
数据结构
计算机算法
编程思想
面向对象技术
计算机数学与基础
数据之美
数据库技术
Web设计理念
软件架构技术
开源与工具
开源项目与工具
信息安全
搜索引擎优化
网站运维
移动开发
iOS开发
Android开发
程序与生活
IT人家
智力开发
互联网时代
游戏 享受与创造
友情链接
博客导航
专题列表
计算机书籍推荐
关于本站
以图明志
-A wakening of the Trailblazer-
Gundam OO
Unlimited Blade Works
Fate Stay Night
Code Geass
Code Geass
Gundam OOQ Design
Gundam OO
Aeolia Schenberg
Gundam OO
PHP服务器脚本
PHP内核探索:新垃圾回收机制说明
PHP5.3中出现了新的GC
PHP内核
垃圾回收
GC
在 2011年06月15日 那天写的
34,516 views
在5.2及更早版本的PHP中,没有专门的垃圾回收器GC(Garbage Collection),引擎在判断一个变量空间是否能够被释放的时候是依据这个变量的zval的refcount的值,如果refcount为0,那么变量的空间可以被释放,否则就不释放,这是一种非常简单的GC实现。然而在这种简单的GC实现方案中,出现了意想不到的变量内存泄漏情况。
阅读全文 >>
PHP服务器脚本
PHP内核探索:变量的引用与计数规则
引用、计数与写时复制
PHP内核
引用
计数
在 2011年06月15日 那天写的
13,733 views
在引擎内部,一个PHP的变量是保存在“zval”结构中,此结构包含了变量的类型和值信息。此结构还有另外两个字段信息,一个是"is_ref"(此字段在5.3.2版本中是is_ref__gc),此字段是一个布尔值,用来标识变量是否是一个引用,通过这个字段,PHP引擎能够区分一般的变量和引用变量。
阅读全文 >>
PHP服务器脚本
PHP内核探索:zend_execute的具体执行过程
解释器最终执行op的函数是zend_execute
PHP内核
zend_execute
程序执行
在 2011年06月15日 那天写的
15,557 views
解释器引擎最终执行op的函数是zend_execute,实际上zend_execute是一个函数指针,在引擎初始化的时候zend_execute默认指向了execute,这个execute定义在{PHPSRC}/Zend/zend_vm_execute.h。此函数的参数为op_array,这是一个指向zend_op_array的指针,op_array是在编译过程中生成。
阅读全文 >>
PHP服务器脚本
PHP内核探索:代码的加密与解密
可以避免直接分发源代码
PHP内核
加密
解密
在 2011年06月14日 那天写的
17,820 views
PHP语言作为脚本语言的一种,由于不需要进行编译,所以通常PHP程序的分发都是直接发布源代码。 对于一些开源软件来说,这并没有什么问题,因为它本来就希望有更多的人阅读代码,希望有更多的人参与进来, 而对于商业代码来说,这却是一个不太好的消息,不管是从商业秘密,还是从对公司产权的保护来说却是一个问题, 基于此,从而引出了对PHP代码的加密和解密的议题。
阅读全文 >>
PHP服务器脚本
PHP内核探索:中间代码opcode的执行
词法分析,语法分析,编译生成中间代码
PHP内核
opcode
在 2011年06月14日 那天写的
18,867 views
假如我们现在使用的是CLI模式,直接在SAPI/cli/php_cli.c文件中找到main函数, 默认情况下PHP的CLI模式的行为模式为PHP_MODE_STANDARD。 此行为模式中PHP内核会调用php_execute_script(&file_handle TSRMLS_CC);来执行PHP文件。 顺着这条执行的线路,可以看到一个PHP文件在经过词法分析,语法分析,编译后生成中间代码的过程。
阅读全文 >>
PHP服务器脚本
PHP内核探索:虚拟机的语法分析
Bison是一种通用目的的分析器生成器
PHP内核
虚拟机
语法分析
在 2011年06月14日 那天写的
10,759 views
Bison是一种通用目的的分析器生成器。它将LALR(1)上下文无关文法的描述转化成分析该文法的C程序。 使用它可以生成解释器,编译器,协议实现等多种程序。 Bison向上兼容Yacc,所有书写正确的Yacc语法都应该可以不加修改地在Bison下工作。 它不但与Yacc兼容还具有许多Yacc不具备的特性。
阅读全文 >>
PHP服务器脚本
PHP内核探索:虚拟机的词法解析
将PHP指令转变成C语言指令
PHP内核
虚拟机
词法解析
在 2011年06月14日 那天写的
11,908 views
语言从广义上来讲是人们进行沟通交流的各种表达符号。每种语言都有专属于自己的符号,表达方式和规则。 就编程语言来说,它也是由特定的符号,特定的表达方式和规则组成。 语言的作用是沟通,不管是自然语言,还是编程语言,它们的区别在于自然语言是人与人之间沟通的工具, 而编程语言是人与机器之间的沟通渠道。
阅读全文 >>
PHP服务器脚本
PHP内核探索:Zend虚拟机
执行中间代码等各个部分统称为Zend虚拟机
PHP内核
虚拟机
Zend
在 2011年06月14日 那天写的
18,988 views
通过前面的学习,我们了解到一个PHP文件在服务器端的执行过程包括以下两个大的过程:递给php程序需要执行的文件, php程序完成基本的准备工作后启动PHP及Zend引擎, 加载注册的扩展模块。初始化完成后读取脚本文件,Zend引擎对脚本文件进行词法分析,语法分析。然后编译成opcode执行。
阅读全文 >>
PHP服务器脚本
PHP内核探索:资源resource类型
资源类型的实现并不复杂
PHP内核
资源
在 2011年06月13日 那天写的
20,189 views
C语言中stdio的文件描述符(file descriptor)是与每个打开的文件相匹配的一个变量,它实际上十一个FILE类型的指针,它将在程序与硬件交互通讯时使用。我们可以使用fopen函数来打开一个文件获取句柄,之后只需把这个句柄传递给feof()、fread()、fwrite()、fclose()之类的函数,便可以对这个文件进行后续操作了。
阅读全文 >>
PHP服务器脚本
PHP内核探索:继承与实现接口
implements 与 extends
PHP内核
继承
接口
在 2011年06月13日 那天写的
10,865 views
在定义一个类时往往会使其继承某个父类或者实现某个接口,在扩展中实现这个功能非常方便。下面我先给出PHP语言中的代码。这里的ZEND_ABSTRACT_ME()宏函数比较特殊,它会声明一个abstract public类型的函数,这个函数不需要我们实现,因此也就不需要相应的ZEND_METHOD(i_myinterface,hello){...}的实现。
阅读全文 >>
PHP服务器脚本
PHP内核探索:定义接口
声明一个类似虚函数的东西
PHP内核
接口
在 2011年06月13日 那天写的
11,753 views
定义一个接口还是很方便的,我先给出一个PHP语言中的形式。我们使用ZEND_ABSTRACT_ME()宏函数来为这个接口添加函数,它的作用是声明一个类似虚函数的东西,不用实现。也就是说我们不用为其添加ZEND_METHOD(i_myinterface,hello){...}的实现。
阅读全文 >>
PHP服务器脚本
PHP内核探索:命名空间
命名空间是一种特殊的作用域
PHP内核
命名空间
在 2011年06月13日 那天写的
13,737 views
在维基百科中,对命名空间的定义是: 命名空间(英语:Namespace)表示标识符(identifier)的上下文(context)。一个标识符可在多个命名空间中定义, 它在不同命名空间中的含义是互不相干的。在编程语言中,命名空间是一种特殊的作用域,它包含了处于该作用域内的标识符, 且本身也用一个标识符来表示,这样便将一系列在逻辑上相关的标识符用一个标识符组织了起来。
阅读全文 >>
PHP服务器脚本
PHP内核探索:对象属性读写
如何对对象进行操作
PHP内核
对象
在 2011年06月13日 那天写的
13,962 views
这一节主要描述与对象属性有关的东西。有关如何对它进行定义的操作我们已经在上一章中描述过了,这里不再叙述,只讲对其的操作。zend_read_property函数用于读取对象的属性,而zend_read_static_property则用于读取静态属性。可以看出,静态属性是直接保存在类上的,用具体的对象无关。
阅读全文 >>
PHP服务器脚本
PHP内核探索:创建对象实例
一个object在PHP内核中到底是如何实现的
PHP内核
对象
在 2011年06月13日 那天写的
12,043 views
为了操作一个对象,我们需要先获取这个对象的实例,而这有肯定会涉及调用对象的构造方法。首先我们先了解下一个object在PHP内核中到底是如何实现的。如果我们有一个zval *tmp,那么tmp->value.obj来访问到最终保存对象实例的zend_object_value结构体,它包含两个成员。
阅读全文 >>
PHP服务器脚本
PHP内核探索:对象
对象是我们可以进行研究的任何事物
PHP内核
对象
在 2011年06月12日 那天写的
14,705 views
对象是我们可以进行研究的任何事物,世间万物都可以看作对象。它不仅可以表示我们可以看到的具体事物, 也可以表示那些我们看不见的事件等。对象是一个实体,它具有状态,一般我们用变量来表示, 同时它也可以具有操作行为,一般用方法来表示,对象就是对象状态和对象行为的集合体。
阅读全文 >>
PHP服务器脚本
PHP内核探索:保留类与特殊类
一些语言内置提供的基本功能类
PHP内核
保留类
特殊类
在 2011年06月12日 那天写的
12,593 views
在面向对象语言中,都会内置一些语言内置提供的基本功能类,比如JavaScript中的Array,Number等类, PHP中也有很多这种类,比如Directory,stdClass,Exception等类,同时一些标准扩展比如PDO等扩展中也会定义一些类, PHP中类是不允许重复定义的,所以在编写代码时不允许定义已经存在的类。
阅读全文 >>
1 / 6
首页
< Prev
1
2
3
4
5
Next >
尾页
页码:
邮件订阅
输入您的邮箱地址,将会收到本站的文章更新信息,赶紧订阅吧。
RSS
Google
鲜果
抓虾
九点
有道
哪吒
QQ邮箱
时不我待
本周热门博文
品读《诫子书》
129 views
更多优秀文章,请移步
精华排行
互联网资讯
陈一舟:创业18年,我领悟的五点心得
384 views
ADS
大音声稀
播种一种思想,收获一种行为;播种一种行为,收获一种习惯;播种一种习惯,收获一种品格;播种一种品格,收获一种命运。
晚八点
新时代严肃阅读指南:文本矩阵简述
662 views
我的微博
ADS
文章分类
专题推荐
其它
捐助本站
计算机书籍推荐
Sponsors
按月归档