msgbartop
PHP语言, PHP扩展, Zend引擎相关的研究,技术,新闻分享 – 左手代码 右手诗
msgbarbottom

31 Oct 08 关于一笔试题(Iterator模式)

中午的时候,收到一封求教信,是关于这样的一道腾讯的面试题:

使对象可以像数组一样进行foreach循环,要求属性必须是私有。

23 Sep 08 使用PHP Embed SAPI实现Opcodes查看器

PHP提供了一个Embed SAPI,也就是说,PHP容许你在C/C++语言中调用PHP/ZE提供的函数。本文就通过基于Embed SAPI实现一个PHP的opcodes查看器。
首先,下载PHP源码以供编译, 我现在使用的是PHP5.3 alpha2
进入源码目录:

 ./configure --enable-embed
 ./make
 ./make install

最后,记得要将生成的libphp5.so复制到运行时…

19 Sep 08 深入理解PHP原理之变量分离/引用(Variables Separation)

在前面的文章中我已经介绍了PHP的变量的内部表示(深入理解PHP原理之变量(Variables inside PHP)),以及PHP中作用域的实现机制(深入理解PHP原理之变量作用域(Scope inside PHP))。这节我们就接着前面的文章,继续介绍PHP中变量分离和引用的概念:

26 Aug 08 深入理解PHP原理之变量作用域(Scope in PHP)

我前面的文章介绍了PHP变量的内部表示,但是,问题是,这些内部表示是如何和用户脚本中的变量联系起来的呢?也就是说,如果我在脚本中写下:

<?php
  $var = "laruence";
  echo $var;
?>

ZE是如何把我的变量var和内部结构zval联系起来的呢?

24 Aug 08 PHP5多层继承顺序的bug

今天guoxiaod提出了一个问题,如下:

<?php
class a extends b {
};
class b extends c{
};
class c{
};
?>
  

会导致fatal error:

PHP Fatal error:  Class 'b' not found in /home/xinchen/1.php on line 2
Fatal error: Class 'b' not found in /home/xinchen/1.php on line 2

分析这个问题,是运行阶段出错,经过分析PHP的编译,执行过程,得出如下的parsing顺序…

24 Aug 08 PHP源码分析之Global关键字

闲来无事,就系统的从PHP的词法分析,语法分析,opcodes生成,执行,整个流程,详细的分析了global关键字的实现。

22 Aug 08 深入理解PHP原理之变量(Variables inside PHP)

或许你知道,或许你不知道,PHP是一个弱类型,动态的脚本语言。所谓弱类型,就是说PHP并不严格验证变量类型(严格来讲,PHP是一个中强类型语言,这部分内容会在以后的文章中叙述),在申明一个变量的时候,并不需要显示指明它保存的数据的类型。而PHP的核心ZE是用C编写的,大家都知道C是一个强类型语言,也就是说,在C中所有的变量在它被声明到最终销毁,都只能保存一种类型的数据。 那么PHP是如何在ZE的基础上实现弱类型的呢?且听我慢慢道来….

19 Aug 08 PHP的单引号和双引号

经常有人问我,听说在PHP中处理字符串用单引号会快,那么如果存在变量替换的时候,是使用单引号连接快呢,还是双引号快呢? 简单的回答,显然是苍白无力的。 今天我们来做个实验,看看到底单引号和双引号有什么区别,谁快,谁慢。

16 Aug 08 扩展PHP[Extending PHP](一)

这篇文章将会系统的介绍如何开发自己的PHP扩展, 也许你会说,网上这样的文章已经很多了,为什么还要写? 呵呵,我当然不会只是简单的重复。 这篇文章将会涉及到很多的高级技术,比如在自己的扩展中使用资源,开发一个类给脚本使用,在PHP中使用C++的对象等等,另外这篇文章还会穿插很多Zend引擎和PHP内核的知识,比如变量的实现,资源的实现,PHP4和PHP5对类的不同实现等等

15 Aug 08 PHP Life Cycle演讲幻灯片(PHP Life Cycle Slides)

作为一个PHPer,你知道你的代码最终是怎么样被执行的么?
你知道从一个请求的发起,到最后的得到结果,经过了那些步骤么?
你知道Zend虚拟机是什么么?
你知道PHP是怎么和Apache整合的么?

呵呵,我来解答:

这是我上次给同事们做演讲的时候的PPT, 具体演讲内容等我回头整理了再放上来。
点击查看 PHP Life Cycle

Pages:  1 2 3 4 5 6 7 8