2011-12-21 31 views
2

此代码给出错误“unexpected”。',期待')'“。为什么这是无效的?我认为,因为这两个部分都是不变的,我可以将它们连接起来。 PHP新手。谢谢。Array class property

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

可能重复http://stackoverflow.com/questions/2671928/workaround-for -basic-syntax-not-being-parsed) – mario 2011-12-21 02:01:35

+1

你应该接受下面的答案来奖励帮助你的人。 :) – 2011-12-21 02:27:04

回答

6

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

documentation

[属性]声明可以包括初始化,但此初始化必须是一个恒定值 - 也就是说,它必须能够在编译时评估并必须不依赖于运行时信息才能被评估。

你可以把属性初始化在构造函数:

public function __construct() 
{ 
    $this->arr = array(
    'hw' => self::HELLO . 'world' 
); 
} 
[解决方案的基本语法不被解析](的
+0

谢谢。我曾认为这将是不变的。尽管我现在看到操作员将其表达为一个观点。 – 2011-12-21 02:06:06