PHP ドキュメントによると、クラス プロパティ宣言は定数値で初期化できます。つまり、クラス プロパティの宣言は定数値に依存しません。実行時情報。ただし、開発者は単純な式でプロパティを初期化するときに問題が発生する可能性があります。たとえば、次のコードは、事前定義されたキーと値のペアで配列を初期化します:
<code class="php">public $var = array( 1 => 4, 2 => (4+1), );</code>
最初のキーと値のペア (1 => 4) は有効ですが、2 番目のキーと値のペア (2 => ( 4 1)) は構文エラーを生成します。 $var = 4 1 などの単純な算術式をプロパティに代入しても、構文エラーが発生します。
この動作は、この制限が配列などの特定の言語構造だけに対するものではないことを示しています。ただし、「4 1」のような式はコンパイル時に評価できるため、定数値と見なす必要があります。
PHP 5.6 では、定数スカラー式として知られる新機能が導入され、この問題が解決されました。これらの式を使用すると、数値および文字列リテラルまたは定数を含むスカラー式を、PHP がプロパティ宣言などの静的な値を以前に想定していたコンテキストで使用できるようになります。
以前は構文エラーを引き起こしていた次のコードが、現在は有効です。
<code class="php">public $var = array( 1 => 4, 2 => (4+1), );</code>
この変更により、開発者はコンパイル中に最適化できる単純な式を使用してクラス プロパティをより柔軟に初期化できるようになります。
以上が単純な式を使用してクラス プロパティを初期化すると、PHP が構文エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。