PHP-从同一类中的另一个类变量设置类变量?
我正在尝试设置一个PHP类:PHP-从同一类中的另一个类变量设置类变量?,php,class-variables,Php,Class Variables,我正在尝试设置一个PHP类: class SomeClass { private $tags = array( 'gen1' => array('some string', 1), 'gen2' => array('some string', 2), 'gen3' => array('some string', 3), 'gen4' => array('some string', 4),
class SomeClass {
private $tags = array(
'gen1' => array('some string', 1),
'gen2' => array('some string', 2),
'gen3' => array('some string', 3),
'gen4' => array('some string', 4),
'gen5' => array('some string', 5),
);
private $otherVar = $tags['gen1'][0];
}
但这带来了一个错误:
PHP分析错误:语法错误,意外的“$tags”
把它换成平常的
private $otherVar = $this->tags['gen1'][0];
返回相同的错误:
PHP分析错误:语法错误,意外的“$this”
但是在函数中访问变量是可以的:
private $otherVar;
public function someFunct() {
$this->otherVar = $this->tags['gen1'][0];
}
如何使用先前定义的类变量来定义和初始化当前类变量,而不使用其他函数?最接近您的方法是将赋值放入构造函数中。例如:
class SomeClass {
private $tags = array(
'gen1' => array('some string', 1),
'gen2' => array('some string', 2),
'gen3' => array('some string', 3),
'gen4' => array('some string', 4),
'gen5' => array('some string', 5),
);
private $otherVar;
function __construct() {
$this->otherVar = $this->tags['gen1'][0];
}
function getOtherVar() {
return $this->otherVar;
}
}
$sc = new SomeClass();
echo $s->getOtherVar(); // echoes some string
正确的方法是使用最后一个代码块,它必须能够在编译时进行计算,并且不能依赖于运行时,在构造函数中赋值。很好,谢谢大家。