延迟绑定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();
One comment
你的文章充满了智慧,让人敬佩。 https://www.yonboz.com/video/27543.html