PHP で空の値からデフォルトのオブジェクトを作成しますか? 質問する

PHP で空の値からデフォルトのオブジェクトを作成しますか? 質問する

このエラーは、PHP 環境を PHP 5.4 以降にアップグレードした後にのみ表示されます。エラーは次のコード行を指しています:

エラー:

空の値からデフォルトのオブジェクトを作成する

コード:

$res->success = false;

最初にオブジェクトを宣言する必要がありますか$res?

ベストアンサー1

新しい環境にはE_STRICT警告が表示される場合があります有効になっているerror_reportingPHP バージョン <= 5.3.x の場合は 、 PHP バージョン >= 5.4 の場合は をerror_reporting少なくとも に設定してください。このエラーは、がまだ初期化されていないE_WARNING場合に発生します。$resNULL

$res = NULL;
$res->success = false; // Warning: Creating default object from empty value

$resすでに何らかの値に初期化されているがオブジェクトではない場合は、PHP は別のエラー メッセージを報告します。

$res = 33;
$res->success = false; // Warning: Attempt to assign property of non-object

E_STRICTPHP 5.4 より前の標準、または PHP >= 5.4 の通常のエラー レベルに準拠するにはE_WARNING、汎用オブジェクトを作成してプロパティを割り当てる場合、グローバル名前空間で のオブジェクトとしてsuccess宣言する必要があります。$resstdClass

$res = new \stdClass();
$res->success = false;

おすすめ記事