PHP中的延迟静态绑定

2019-02-27  本文已影响0人  大也也

引入: PHP继承模型中有个遗留很久的问题。那就是父类中引用拓展类的最终状态比较困难。

接下来看用两个例子来说明

第一个例子:

<?php
class NBA {
    static  $name = "Michael Jordan";
    public static function  play(){
         return self::$name
    }
}
class CBA{
   static $name = "Guo Ai Lun";
}
echo CBA::play();

Michael Jordan

由此可见 CBA::play()无法访问CBA中$name的值,为了解决这个问题,需要再CBA中重写play方法。
也可以通过引用延迟静态绑定
接下来看第二个例子

<?php
class NBA {
    static  $name = "Michael Jordan";
    public static function  play(){
         return static::$name
    }
}
class CBA{
   static $name = "Guo Ai Lun";
}
echo CBA::play();

Guo Ai Lun

通过是用静态作用域,可以强制Php 在最终的类中查找属性值。

上一篇 下一篇

猜你喜欢

热点阅读