2016-03-16 181 views
1

我正試圖圍繞PHP中的static關鍵字進行打包。在這裏我寫了一小段代碼,其中我的person1實例可以調用稱爲sayRealname()的靜態方法。但是當我嘗試調用一個公共靜態變量時,它會給出一個錯誤。這是什麼原因?實例對象可以調用靜態方法,但不是靜態變量

class Human{ 
    public static $age=34; 
    public static $name='humpty dumpty'; 
    protected static $realname='al'; 

    public static function sayRealname(){ 
     echo self::$age; 
    } 
} 

$person1=new Human(); 
echo $person1->name; // error 
$person1->sayRealname(); // prints 34 
+0

爲什麼名稱是靜態的? – mkaatman

+0

它可以是任何..我叫它的名字.. –

+0

僅供參考,如果你只是想讓它工作...'echo $ person1 :: $ name;' –

回答

0

當您訪問靜態內容時,您需要使用靜態運算符::

另一方面,箭頭運算符->旨在用於實例上下文中,該實例上下文在被調用時屬於特定實例。

你可以在documentation的這一部分閱讀更多關於此內容。

相關問題