2011-11-30 52 views
0

有人可以請解釋我爲什麼以下不起作用,或給我一個鏈接,這解釋了爲什麼?我無法在這裏或谷歌找到它。在一個類的屬性中的數組中調用函數

這工作:

var_dump(array('test' => rand(1,5))); 

這並不:

$myClass = new myClass(); 
var_dump($myClass->array); 

class myClass { 

    public $array = array('test' => rand(1,5)); 

} 

它不喜歡的數組中的函數調用:

Parse error: syntax error, unexpected '(', expecting ')' 

我猜這是我缺乏理解。如果有人能幫助我理解它,這會很好。

謝謝!

+0

它看起來並不我重複一個。 –

+0

你無法將它寫入類的屬性 – Dezigo

+1

@ShaktiSingh OP要求用計算值初始化一個屬性,例如:取決於運行時信息。這與鏈接副本中的問題相同。它不起作用的原因與被接受的答案中引用的相同。 – Gordon

回答

2
$myClass = new myClass(); 
var_dump($myClass->array); 

class myClass { 

    public $array; 

    function myClass(){ 
     $this -> array = array('test' => rand(1,5)); 
    } 

} 

有關詳細信息:What is the better approach to initialize class variables?

+2

爲什麼你在你的例子中使用遺留構造函數的任何特定原因? – Gordon

+0

沒有特別的原因,它只是工作:) – Dev

+1

...直到你把類放入命名空間 – Gordon

相關問題