美文网首页
PHP中的延迟静态绑定

PHP中的延迟静态绑定

作者: 大也也 | 来源:发表于2019-02-27 01:17 被阅读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 在最终的类中查找属性值。

    相关文章

      网友评论

          本文标题:PHP中的延迟静态绑定

          本文链接:https://www.haomeiwen.com/subject/rrmphqtx.html