1. ホーム
  2. php

[解決済み】PHPで空の値からデフォルトオブジェクトを作成する?

2022-01-22 14:02:47

質問

PHPの環境をPHP5.4以降にアップグレードした後に、このエラーが表示されます。エラーの原因は、このコードの行にあります。

エラーです。

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

コード

$res->success = false;

を宣言する必要があるのでしょうか? $res オブジェクトを作成できますか?

解決方法は?

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

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

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

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

に準拠するため E_STRICT PHP 5.4 より前の規格、あるいは通常の E_WARNING PHP 5.4 のエラーレベルでは、ジェネリックオブジェクトを作成し、そのプロパティに success を宣言する必要があります。 $res のオブジェクトとして使用します。 stdClass をグローバル名前空間で使用します。

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