2017-02-01 2 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" 
    ); 
} 
関連する問題