このエラーは、PHP 環境を PHP 5.4 以降にアップグレードした後にのみ表示されます。エラーは次のコード行を指しています:
エラー:
空の値からデフォルトのオブジェクトを作成する
コード:
$res->success = false;
最初にオブジェクトを宣言する必要がありますか$res
?
ベストアンサー1
新しい環境にはE_STRICT
警告が表示される場合があります有効になっているerror_reporting
PHP バージョン <= 5.3.x の場合は 、 PHP バージョン >= 5.4 の場合は をerror_reporting
少なくとも に設定してください。このエラーは、がまだ初期化されていないE_WARNING
場合に発生します。$res
NULL
$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_STRICT
PHP 5.4 より前の標準、または PHP >= 5.4 の通常のエラー レベルに準拠するにはE_WARNING
、汎用オブジェクトを作成してプロパティを割り当てる場合、グローバル名前空間で のオブジェクトとしてsuccess
宣言する必要があります。$res
stdClass
$res = new \stdClass();
$res->success = false;