PHP エラー: 定数式に無効な操作が含まれています
PHP 開発で発生する一般的な問題は、「致命的なエラー: 定数式に無効な操作が含まれています」です。 " エラー。定数式内で無効な演算を使用しようとすると発生します。これは通常、クラス プロパティまたは関数パラメーターを定数として定義するときに発生します。
問題
具体的には、提供された例では、構成の 214 行目でエラーが発生します。 php file:
protected static $dbname = 'mydb_'.$appdata['id'];
この行は、$dbname という名前の静的プロパティを定義しようとします。文字列「mydb_」と $appdata['id'] 変数の値を連結したもの。ただし、$appdata['id'] は定数式ではないため、この初期化は無効です。
解決策
このエラーの解決策は、すべてが静的であることを確認することです。プロパティまたはパラメーターの宣言は、コンパイル時に評価できるリテラル値または定数値で初期化されます。この場合、$appdata['id'] は定数値ではないため、定数式で使用できません。
これを解決するには 2 つの方法が考えられます:
protected $dbname = 'mydb_'.$appdata['id'];
静的属性を削除することで属性を使用すると、プロパティは、変数 $appdata['id'] が定義されるときに実行時に初期化される動的プロパティになります。
private static $dbname = 'mydb_' . 'CONSTANT_STRING';
定数文字列を使用すると、初期化はコンパイル時に評価できる定数式になります。 time.
追加情報
静的宣言はコンパイル中に解決されることを理解することが重要です。これは、変数の値やその他の動的式を定数宣言で使用できないことを意味します。
以上がPHP が静的プロパティを定義するときに「定数式に無効な操作が含まれています」というエラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。