2017-02-01 48 views
0

我不明白爲什麼這不起作用:陣列/類常量表達式包含無效操作

class TestOne 
{ 

    public static $TEST = array(
     "test" => array("name" => TestTwo::$TEST2[ "test" ]) // error line 
)} 

class TestTwo 
{ 
    public static $TEST2 = array(
     "test" => "result" 
    ); 
} 

這給我的錯誤:

Constant expression contains invalid operations

我想TestOne::$TEST[ "test" ][ "name" ]含有「結果「

+0

PHP版本?在這裏使用。 – JustOnUnderMillions

+0

我正在使用7.1.1 –

回答

0

Constant scalars expressions無法引用變量(因爲它們不是常量)。

您必須以其他方式(例如通過靜態訪問器)初始化屬性,或者完全避免使用公共靜態屬性。

0

在PHP中,定義類的變量時不能使用其他變量。

給你一個簡單的例子,

$test = "result"; 

class TestOne { 
    public static $TEST = $test; 
} 

就已經給你同樣的錯誤,因爲你不能引用其他變量,而在一個類中定義它們。只能這樣做的方法是:

class TestOne 
{ 

    public static $TEST = array(
     "test" => array(
      "name" => "result" 
     ) 
    ); 
} 

class TestTwo 
{ 
    public static $TEST2 = array(
     "test" => "result" 
    ); 
} 
相關問題