对于PHP版本<= 5.3,您的新环境可能在error_reporting中启用了E_STRICT警告。或将error_reporting至少设置为E_WARNING, PHP版本为>= 5.4。当$res为NULL或未初始化时,该错误被触发:
$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
为了符合PHP 5.4之前的E_STRICT标准,或者符合PHP >= 5.4中的E_WARNING错误级别,假设你尝试创建一个通用对象并成功分配属性,你需要在全局命名空间中声明$res为stdClass的一个对象:
$res = new \stdClass();
$res->success = false;