LSB:延迟静态绑定
来源:互联网 发布:dashboard是什么软件 编辑:程序博客网 时间:2024/05/16 07:18
<?php/** * LSB 延期静态绑定 * @package PHPDocs * @author vboy */class A{ public static function foo() { echo __CLASS__; }}class B extends A{ public static function foo() { echo __CLASS__; } public static function test() { static::foo(); self::foo(); parent::foo(); }}class C extends B{ public static function foo() { echo __CLASS__; }}C::test();//输出: C B Aecho "<br>";class D{public function foo(){echo __CLASS__;}public static function test(){static::foo();}}class E extends D{public function foo(){echo __CLASS__;}}class F extends D{}class G extends E {public function foo(){echo __CLASS__;}}class H extends F{public function foo(){echo __CLASS__;}}E::test(); //输出:EF::test(); //输出:DG::test(); //输出:GH::test(); //输出:Hecho "<br>";class I {public function foo(){echo __CLASS__;}public function test(){static::foo();}}class J extends I{public function foo(){echo __CLASS__;}}class K extends I{}$obj = new J();$obj->test(); //输出:J$obj = new K();$obj->test(); //输出:Iecho "<br>";class L {public static $method = array('user' => 'L1','pass' => 'L2',);public function foo(){var_dump(static::$method);}}class M extends L {public static $method = array('user' => 'M1','pass' => 'M2',);}class N extends L{}$obj = new M();$obj->foo();$obj = new N();$obj->foo();echo "<br>";?>