php关键字self与statics

版权声明:未经允许不得转载。 https://blog.csdn.net/qq_35958788/article/details/83005138

一个self的类子

class Car
{
    public static function model()
    {
         self::getModel();
    }
    protected static function getModel()
    {
        echo "I am a Car!";
    }
}

类的外面调用:Car::model(); //I am a Car!

  • 另一个类继承Car
class Mercedes extends Car
{
    protected static function getModel()
    {
        echo "I am a Mercedes!";
    }
}

类的外面调用:Mercedes::model();//I am a Car!

一个static的类子

class Car
{
    public static function model()
    {
         static::getModel();
    }
    protected static function getModel()
    {
        echo "I am a Car!";
    }
}
class Mercedes extends Car
{
    protected static function getModel()
    {
        echo "I am a Mercedes!";
    }
}

类的外面调用:Mercedes::model();//I am a Mercedes!

结束

  • 关键字“self”的工作原理是:它会调用当前类(current class)的方法。
  • 在php5.3中加入一个新特性—延迟静态绑定(late static binding),用static关键字调用一个继承方法时,它将在运行时绑定调用类(calling class)。

猜你喜欢

转载自blog.csdn.net/qq_35958788/article/details/83005138