php - 从 PHP 中的空值创建默认对象?

标签 php

我仅在将我的 PHP 环境升级到 PHP 5.4 及更高版本后才看到此错误。错误指向这行代码:

错误:

Creating default object from empty value

代码:

$res->success = false;

我首先需要声明我的 $res 对象吗?

最佳答案

您的新环境可能有 E_STRICT 警告 enabled in 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

如果 $res 已经初始化为某个值但不是对象,PHP 将报告不同的错误消息:

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

为了符合 PHP 5.4 之前的 E_STRICT 标准,或 PHP >= 5.4 中的正常 E_WARNING 错误级别,假设您正在尝试创建一个通用对象并赋值属性success,你需要将$res声明为全局命名空间中stdClass的对象:

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

关于php - 从 PHP 中的空值创建默认对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8900701/

相关文章:

php - 我想在 exec() 中运行命令

php - 寻找连接不良的表之间的链接(不确定公式)

php - Sublime Text : in HTML links having PHP snippets, 符号突出显示红色?

javascript - 用 Javascript 突出显示单词,我错过了什么?

php - 使用 while 循环中的 $_POST 数据更新 mysql

php - 找到黑客留下的代码,但不明白它的作用

php - 将多个正则表达式合并为一个

php - 无法打开流 : Invalid argument

php - 使用mysql存储过程创建分页

php - 无法在 php 正则表达式中使用 OR( | )