ホームページ >バックエンド開発 >PHPチュートリアル >PHP が「空の値からのデフォルト オブジェクトの作成」エラーをスローするのはなぜですか?

PHP が「空の値からのデフォルト オブジェクトの作成」エラーをスローするのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-19 21:31:10120ブラウズ

Why Does PHP Throw a

PHP の「空の値からデフォルト オブジェクトを作成する」エラーについて

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。