2011-11-30 57 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

相关问题