PHP延迟静态捆绑Late Static Bindings

王朝php·作者佚名  2008-12-18
宽屏版  字体: |||超大  

看了一下PHP5.3的Late Static Bindings,简单了翻译一下

Late Static Bindings是在PHP5.3中加入的新特性,拼音来说,就是把本来在定义阶段固定下来的表达式

或变量,改在执行阶段才决定,比如当一个子类继承了父类的静态表达式的时候,它的值并不能被改变,有

时不希望看到这种情况

<?php

class A {

public static function who() {

echo __CLASS__;

}

public static function test() {

self::who();

}

}

class B extends A {

public static function who() {

echo __CLASS__;

}

}

B::test();//输入A

?>

但是现在我想让其输出B,那么使用Late Static Bindings可实现这一特性了

<?php

class A {

public static function who() {

echo __CLASS__;

}

public static function test() {

static::who(); // Late Static Bindings

}

}

class B extends A {

public static function who() {

echo __CLASS__;

}

}

B::test();//输出B

?>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有