本文共 1005 字,大约阅读时间需要 3 分钟。
PHP 5/Zend Engine 2.0的改进(二) (转)[@more@]
/Develop/read_article.?id=21008">[接上页]
5/ Engine 2.0的改进:namespace prefix = o ns = "urn:schemas--com::office" />
允许常量中包含,但在编译时常量中的表达式将被计算,
因此常量不能在运行中改变它的值。
class Bar {
const a = 1<<0;
const b = 1<<1;
const c = a | b;
}
?>
以前代码中的自定义类或方法中虽然未定义"const”关键字,
但无需修改就可以运行。
异常(Exceptions)
中没异常处理,PHP5引入了与其它与语言相似的异常处理模型。
以前代码中的用户自定义类或方法中虽未定义'catch', 'throw' 和 'try'关键字,但无需修改
就可以运行。
返回值
在PHP4中,函数不可能返回对象的值并对返回的对象进行方法,随着Zend Engine 2
(ZEND引擎2)的出现,以下调用成为可能:
静态类中的静态成员变量可初始化
例如:
静态方法(Static Methods)
PHP5引入了关键字'static'来定义一个静态方法,这样可以从对象外进行调用。
例如:
虚拟变量$this在被定义为静态(static)的方法中无效。
Instanceof
PHP5引入了 “instanceof“关键字来确定一个对象是否是某一个对象的实例,或某一个对象的派生,或使用了某一个接口。
示例:
静态函数变量(Static function variables)
所有的静态变量现在在编译时进行处理,这允许开发者通过引用来指定静态变量。这个变化提高了但意味着不可能对静态变量进行间接引用。
函数中通过引用方式传递的参数允许有默认值
例如:
__autoload()
在初始化一个未定义的类时,__autoload()拦截函数(interceptor function)将被自动调
用。类名将作为__autoload()拦截函数唯一参数传递给它。
例如:
方法和属性调用的重载
所有方法调用和属性访问都可以通用 __call(), __get() 和 __set()方法来重载。
例: __get() 和 __set()
示例: __call()
转载地址:http://jaowx.baihongyu.com/