PHP の「空の値からデフォルト オブジェクトを作成する」エラーは、設定されていないように見えるプロパティにアクセスするとよく発生します。変数。このエラーは、バージョン 5.4 以降の PHP の厳密なエラー処理の結果です。
このエラーは、PHP がまだオブジェクトではない変数、または明示的に NULL に設定されている変数のデフォルト オブジェクトを初期化しようとするとトリガーされます。例:
$res = NULL; $res->success = false;
PHP 5.3 以前では、このコードはエラーを生成しませんでした。ただし、PHP バージョン 5.4 以降では、E_STRICT 警告 (error_reporting がこのレベル以上に設定されている場合は E_WARNING) が有効になっており、「空の値からデフォルト オブジェクトを作成しています」エラーが発生します。
$res を最初に宣言する必要がありますか?
いいえ、$res を次のように宣言しますオブジェクトは必要ありません。ただし、$res のプロパティにアクセスする前に、$res がオブジェクトであることを確認する必要があります。これを行うには、特定のクラスのオブジェクトとして初期化するか、汎用の stdClass オブジェクトを使用します。
// Initialize as a specific class $res = new MyClassName(); // Initialize as a generic object $res = new \stdClass();
$res がオブジェクトになると、"空の値からデフォルトのオブジェクトを作成する」エラー。
$res->success = false; // No error
以上がPHP が「空の値からのデフォルト オブジェクトの作成」エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。