数组类属性

时间:2011-12-21 01:57:37

标签: php

此代码提供错误“意外”。',期待')'“。为什么这个无效?我认为由于两个部分都是不变的,我可以将它们连接起来。 PHP新手。感谢。

class c {
  const HELLO = 'hello';
  public $arr = array(
    'hw' => self::HELLO . 'world'
  );
}

1 个答案:

答案 0 :(得分:6)

类属性必须具有常量初始值。这两个字符串的串联不是一个常数值。

来自documentation

  

[Property]声明可能包含初始化,但此初始化必须是常量值 - 也就是说,它必须能够在编译时进行评估,并且不能依赖于运行时信息以便进行评估。

您可以将属性初始化放在构造函数中:

public function __construct()
{
  $this->arr = array(
    'hw' => self::HELLO . 'world'
  );
}