在php中从另一个私有数组调用私有数组

在php中从另一个私有数组调用私有数组,php,arrays,private,Php,Arrays,Private,我不明白为什么这个代码不起作用: <?php class Test { private $BIG = array( 'a' => 'A', 'b' => 'B', 'c' => 'C' ); private $arr2 = array( $this->BIG['a'], $this->BIG['b'], 'something' )

我不明白为什么这个代码不起作用:

<?php
class Test {

    private $BIG = array(
        'a' => 'A',
        'b' => 'B',
        'c' => 'C'
    );

    private $arr2 = array(
        $this->BIG['a'],
        $this->BIG['b'],
        'something'
    );

    public function getArr2(){
        return $this->arr2;
    }


}

$t = new Test();
print_r($t->getArr2());

?>

我得到这个错误:

分析错误:语法错误,意外 T_变量,应为“')” /home/web/te/test.php 第11行


声明属性时不能引用$this

在声明属性时不能引用$this

来自:

[财产]声明可能包括: 初始化,但是这个 初始化必须是常量 值——也就是说,它必须能够 在编译时进行计算,并且不能 依赖于中的运行时信息 要评估的订单

因此,在构造函数中执行类似的操作:

class Test {

    private $BIG = array(
        'a' => 'A',
        'b' => 'B',
        'c' => 'C'
    );

    private $arr2;

    public function __construct()
    {
        $this->arr2 = array(
            $this->BIG['a'],
            $this->BIG['b'],
            'something'
        );
    }

    public function getArr2(){
        return $this->arr2;
    }
}
从:

[财产]声明可能包括: 初始化,但是这个 初始化必须是常量 值——也就是说,它必须能够 在编译时进行计算,并且不能 依赖于中的运行时信息 要评估的订单

因此,在构造函数中执行类似的操作:

class Test {

    private $BIG = array(
        'a' => 'A',
        'b' => 'B',
        'c' => 'C'
    );

    private $arr2;

    public function __construct()
    {
        $this->arr2 = array(
            $this->BIG['a'],
            $this->BIG['b'],
            'something'
        );
    }

    public function getArr2(){
        return $this->arr2;
    }
}

不能在类成员定义中组合变量。只能使用本机类型和常量:

private $arr = array('a', 'b');
private $obj = new stdClass(); // error
private $obj = (object)array(); // error
private $num = 4;
private $a = 1;
private $b = 2;
private $c = $this->a + .... // error
如果要合并或计算,请在
\u construct
中执行此操作:

private $a = 1;
private $b = 2;
private $c;

function __construct() {
  $this->c = $this->a + $this->b;
}

不能在类成员定义中组合变量。只能使用本机类型和常量:

private $arr = array('a', 'b');
private $obj = new stdClass(); // error
private $obj = (object)array(); // error
private $num = 4;
private $a = 1;
private $b = 2;
private $c = $this->a + .... // error
如果要合并或计算,请在
\u construct
中执行此操作:

private $a = 1;
private $b = 2;
private $c;

function __construct() {
  $this->c = $this->a + $this->b;
}