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>";?>


原创粉丝点击