我在Yii框架上看過幾次這種語法的用法。我嘗試尋找解釋,但沒有例子。如果可能的話,鏈接將會很好。它類似於class::model()->function();
這是什麼意思在PHP() - >
我的理解是模型是類的一個對象,因此它可以訪問函數。所以我試圖編碼它,但我得到「調用成員函數sound()
在非對象」。這裏是我的代碼
class animal
{
private static $obj;
public static function obj($className = __CLASS__)
{
return self::$obj;
}
public static function walk()
{
return "walking";
}
}
include('animal.php');
class cat extends animal
{
public static function obj($className = __CLASS__)
{
return parent::obj($className);
}
public static function sound()
{
return "meow";
}
}
echo cat::obj()->sound();
它也有什麼好處?
解釋了這麼多,我做了if(!self :: $ obj){self :: $ obj = new $ className;} return self :: $ obj;它的工作。靜態版本給我「不能訪問屬性cat :: $ obj」我應該改變貓類 –
中的東西我看到你的編輯,但錯誤是一樣的。謝謝 –
你使用的是什麼PHP版本? 'static'只在PHP 5.3中引入,所以如果你使用的是舊版本,它將不起作用。 (但是你不應該在這個版本以前,因爲5.2已經不支持三年了,所以如果你不在5.3,這是你的升級提示) – Spudley