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),

我正在尝试设置一个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), 
        '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

正确的方法是使用最后一个代码块,它必须能够在编译时进行计算,并且不能依赖于运行时,在构造函数中赋值。很好,谢谢大家。