首页 > 后端开发 > php教程 > 为什么 PHP 会抛出'从空值创建默认对象”错误?

为什么 PHP 会抛出'从空值创建默认对象”错误?

Mary-Kate Olsen
发布: 2024-12-19 21:31:10
原创
146 人浏览过

Why Does PHP Throw a

理解 PHP 的“从空值创建默认对象”错误

当您访问看似未设置的属性时,通常会出现 PHP 的“从空值创建默认对象”错误多变的。此错误是 PHP 5.4 及更高版本中严格错误处理的结果。

当 PHP 尝试为还不是对象或显式设置为 NULL 的变量初始化默认对象时,会触发此错误。例如:

$res = NULL;
$res->success = false;
登录后复制

在 PHP 5.3 及更早版本中,此代码不会产生任何错误。但是,在 PHP 5.4 及更高版本中,启用了 E_STRICT 警告(如果将 error_reporting 设置为至少此级别,则启用 E_WARNING),从而导致“从空值创建默认对象”错误。

$res 需要先声明吗?

不,将 $res 声明为对象是没有必要。但是,在访问其属性之前,必须确保 $res 是一个对象。为此,您可以将其初始化为特定类的对象,也可以使用通用 stdClass 对象:

// Initialize as a specific class
$res = new MyClassName();

// Initialize as a generic object
$res = new \stdClass();
登录后复制

一旦 $res 是一个对象,您就可以访问和修改其属性,而无需遇到“从空值创建默认对象”错误。

$res->success = false; // No error
登录后复制

以上是为什么 PHP 会抛出'从空值创建默认对象”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板