php zend engine,PHP 5/Zend Engine 2.0的改进(二) (转)

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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值