2013-04-11 103 views
0

我真的不知道google是什麼,因爲我有種不知道行話的PHP和OOP。爲什麼我不能在課堂上申報「約會」?

爲什麼不在PHP中工作?

class Calendar{ 
    public $derp="lala"; 
    public $todaysDate=date('Y-m-d',strtotime('2013-04-11')); 
} 

但這是嗎?

class Calendar{ 
    public $derp="lala"; 
    public function __construct() 
    { 
     $this->todaysDate=date('Y-m-d',strtotime('2013-04-11')); 
    } 
} 

你不能在類的開頭聲明一個日期嗎?爲什麼?

+0

* [類定義中的屬性聲明只能是常量值,而不是表達式。](http://stackoverflow.com/questions/2671928/workaround-for-basic-syntax-not-being-parsed) – mario

回答

2

PHP.net

TL; DR不能初始化與非恆定值的屬性。函數不是常量值。

屬性

類成員變量被稱爲 「屬性」。您也可能會看到它們使用其他術語(如 )作爲「屬性」或「字段」,但爲了本參考的目的,我們將使用「屬性」。它們是 ,通過使用關鍵字public,protected或private之一定義,後跟正常變量
聲明。這個聲明可能包括一個初始化,但是這個初始化必須是一個常量 的值 - 也就是說,它必須能夠在編譯時進行評估,並且不能依賴運行時的信息來評估。

+0

謝謝!我想知道爲什麼是這樣。 –

0

date是一個函數。函數從方法調用。另外給你的$todaysDate變量的值在構造函數中更合適。

相關問題