ホームページ > バックエンド開発 > PHPチュートリアル > 静的変数の初期化時に PHP コードで「致命的エラー: 定数式に無効な操作が含まれています」エラーがスローされるのはなぜですか?

静的変数の初期化時に PHP コードで「致命的エラー: 定数式に無効な操作が含まれています」エラーがスローされるのはなぜですか?

Barbara Streisand
リリース: 2024-12-01 04:14:08
オリジナル
1003 人が閲覧しました

Why Does My PHP Code Throw a

PHP 致命的なエラー: 定数式の無効な操作

「致命的なエラー: 定数式に無効な操作が含まれています」というエラーが発生した場合、このエラーが発生します。 PHP 静的変数は、PHP の前に非リテラルまたは非定数値で初期化しようとします。 5.6.

あなたの場合、問題の行:

protected static $dbname = 'mydb_'.$appdata['id'];
ログイン後にコピー

は、動的変数 $appdata['id'] の値で静的プロパティ $dbname を初期化しようとします。ただし、PHP 5.6 より前では、静的プロパティは定数またはリテラルを使用して初期化する必要があります。

この背後にある理由は、静的宣言がコンパイル時に評価されるためです。つまり、PHP インタープリターは、実行時にのみ認識される動的変数にアクセスできません。 。このエラーを解決するには、次のようにします。

  • $appdata['id'] を定数文字列に置き換えます。 データベース名が固定値であることを確認し、それを直接割り当てます。例: protected static $dbname = 'mydb_my_app';.
  • 静的ファイルを削除します属性: $dbname を静的である必要がない場合は、static キーワードなしで通常の変数として宣言します (例: protected $dbname = 'mydb_my_app';)。

以上が静的変数の初期化時に PHP コードで「致命的エラー: 定数式に無効な操作が含まれています」エラーがスローされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート