仅在将我的PHP环境升级到PHP 5.4及更高版本后,我才看到此错误。错误指向以下代码行:
错误:
从空值创建默认对象
码:
$res->success = false;
我首先需要声明我的$res对象吗?
$res
您的新环境可能已为<= 5.3.x的PHP版本启用了E_STRICT警告,或者仅在至少=> 5.4的PHP版本中设置了警告。当触发了错误的或者尚未初始化:error_reporting``error_reporting``E_WARNING``$res``NULL
E_STRICT
error_reporting``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_STRICTPHP 5.4之前的标准或E_WARNINGPHP> = 5.4中的常规错误级别,假设您尝试创建一个通用对象并分配该属性success,则需要在全局名称空间中声明$res为的对象stdClass:
E_WARNING
success
stdClass
$res = new \stdClass(); $res->success = false;