Blogger Information
Blog 42
fans 0
comment 0
visits 36364
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
延迟静态绑定static
庆选的博客
Original
702 people have browsed it

总结:

第一点静态,也就是说这个功能只适用于静态属性或静态方法。
第二点延迟绑定

//静态继承的上下文环境中, 调用被子类重写的静态方法,使用关键字static, 代替掉self

实例

class A{
    static $name = "父类";
    public function printName(){
        echo self::$name."\n";
        self::fun();
    }
    static function fun(){
        echo "A Class\n";
    }
}
class B extends A{
    static $name = "子类";
    static function fun(){
        echo "B Class\n";
    }
}
$obj = new B();
$obj->printName();
// 输出结果
// 父类
// A Class

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

class A{
    static $name = "父类";
    public function printName(){
        echo static::$name."\n";
        static::fun();
    }
    static function fun(){
        echo "A Class\n";
    }
}
class B extends A{
    static $name = "子类";
    static function fun(){
        echo "B Class\n";
    }
}
$obj = new B();
$obj->printName();
// 输出结果
// 子类
// B Class

运行实例 »

点击 "运行实例" 按钮查看在线实例


总结:

后期静态绑定本想通过引入一个新的关键字表示运行时最初调用的类来绕过限制。简单地说,这个关键字能够让你在上述例子中调用 test() 时引用的类是 B 而不是 A。最终决定不引入新的关键字,而是使用已经预留的 static 关键字。

实例:

大家可以在项目中自行挖掘使用场景,比如一个会员父类  class Vip
下面两个子类分别是 超级会员 svip 和 年费会员 yvip
可以在两个子类中分别重写 static usergroup() 方法 或者其他静态属性 ,父类中使用延迟静态绑定


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post