延迟绑定static::

在PHP5.3中加入了一个新特性(后期静态绑定),该特性最明显的标志就是新关键字

static,用法类似于self。

“后期静态绑定”的意思是说,static::不在被解析为定义当前方法所在的类,而是在实际运行时计算的。因此也称之为执行期绑定。

比如当一个子类继承了父类的静态属性和方法的时候,它的值并不能改变,有是时不希望看到这种情况。

<?php
class Person{
    static  $name="张三";
    const  AGE=22;
    public static function intro(){
        echo "我的名字是 ",self::$name,"<br/>";
        echo "我的年龄是".self::AGE,"<br/>";
    }

    public static function intro1(){
        echo "我的名字是 ",static::$name,"<br/>";
        echo "我的年龄是".static::AGE,"<br/>";
    }
}

class stu extends Person{
    static  $name ="王五";
    //如果我想让继承的intro方法 输出的是 "王五"  必须重写覆盖。
    //那么有没有一种方法可以  在子类里面运算子类的属性呢?
    //就用 static::$age延迟绑定  也就是执行期绑定 实际运算的时候计算
 }

Person::intro();
echo "<hr/>";
Stu::intro();
echo "<hr>";
Stu::intro1();
Last modification:January 6, 2020
如果觉得我的文章对你有用,请随意赞赏