【问题标题】:Call function in an array in a property of a class [duplicate]在类的属性中调用数组中的函数[重复]
【发布时间】:2011-11-30 09:17:56
【问题描述】:

有人可以解释一下为什么以下内容不起作用,或者给我一个解释原因的链接吗?我在这里或谷歌上找不到它。

这行得通:

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 ')'

我想这是我缺乏理解。如果有人可以帮助我理解它,那就太好了。

谢谢!

【问题讨论】:

  • 它看起来不像是重复的。
  • 你不能把它写在类属性中
  • @ShaktiSingh OP 要求使用计算值初始化属性,例如取决于运行时信息。这与链接副本中的问题相同。并且由于已接受答案中引用的相同原因,它不起作用。

标签: php arrays class properties


【解决方案1】:
$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?

【讨论】:

  • 您在示例中使用遗留构造函数的任何特殊原因?
  • 没有什么特别的原因,它只是工作:)
  • …直到你把类放到命名空间中
  • 感谢开发者提供的链接。我已经使用了您的方式(使用 __construct),但只是想知道为什么不能将其声明为属性:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-28
  • 2016-06-26
  • 2015-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-11
相关资源
最近更新 更多