数组类属性

ido*_*ing 2 php

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

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

Tim*_*per 6

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

文档:

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

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

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