在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;
}