1. 程式人生 > >php關鍵字self與statics

php關鍵字self與statics

一個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)。