美文网首页
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中的延迟静态绑定

    引入: PHP继承模型中有个遗留很久的问题。那就是父类中引用拓展类的最终状态比较困难。 接下来看用两个例子来说明 ...

  • PHP静态延迟绑定

    1、什么是静态延时绑定 1)自 PHP 5.3.0 起,PHP 增加了一个叫做后期静态绑定的功能,用于在继承范围内...

  • PHP的'静态延迟绑定'

    今天,几个朋友在一起吹牛逼,一个朋友问我什么是静态绑定,我当时懵逼了,后面回来一查,这玩意儿不就是以前写代码的时候...

  • PHP static关键字的用法及注意点

    PHP static关键字用来定义静态方法及属性,在类中可用来延迟静态绑定以及在函数中修饰变量。 1:先来谈谈st...

  • PHP中的静态延迟绑定(self和static)

    读这边文章之前,建议大家先去了解下静态延迟绑定的概念。 成员变量 可以看到返回值为4,有的人可能疑惑,不应该是5吗...

  • 面向对象中的静态延迟绑定

    面向对象中的静态方法可以用作工厂方法,工厂方法是生成包含类的实例的一种方法,请看下面这一段代码,如果你是一个有强迫...

  • static延迟静态绑定

  • php后期静态绑定

    在观看laravel源码的时候,突然看到了 虽然之前翻看手册的时候看到过,但很少使用,于是仔细看了一下,原来是后期...

  • php 后期静态绑定

    php手册上关于后期静态绑定如下解释:后期静态绑定工作原理是存储了在上一个"非转发调用"的类名。 这里我们先明确什...

  • PHP 后期静态绑定

    自 PHP 5.3.0 起,PHP 增加了一个叫做后期静态绑定的功能,用于在继承范围内引用静态调用的类。 准确说,...

网友评论

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

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