当前位置: 首页 > 面试题库 >

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

阎德宇
2023-03-14
问题内容

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

错误:

从空值创建默认对象

码:

$res->success = false;

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


问题答案:

您的新环境可能已为<=
5.3.x的PHP版本启用了E_STRICT警告,或者仅在至少=>
5.4的PHP版本中设置了警告。当触发了错误的或者尚未初始化: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

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


 类似资料:
  • 问题内容: 我从joomla安装中收到以下错误。 如何解决此错误? 问题答案: 事实证明,作者错过了一个非常简单的修复程序和一般的良好实践,即您在尝试设置属性之前应始终初始化对象。对此的非常简单的解决方法是,在错误尝试添加的变量之前添加一个调用。 第一行将阻止警告显示。 这也可以通过以下修复来解决该问题。

  • 我试图创建一个python函数,从DataFrame中绘制数据。参数要么只是数据。或者数据和标准差。 作为标准差的默认参数,我想使用一个空的DataFrame。 但是像这样实现它会给我以下错误消息: 如何将空DataFrame创建为默认参数?

  • 问题内容: 我正在尝试创建一个非常有用的等效列表。以下设计效果很好: 使用方法如下: 我应该添加什么到默认列表中以支持以下行为? 问题答案: 在给出的示例中,您首先尝试检索列表中不存在的值,就像这样做一样,Python首先检索列表中的第三个(索引2)元素,然后继续在该列表中获取名为“ a”的元素对象-因此,您还必须实现对方法的自动扩展行为,如下所示:

  • 问题内容: 在 创建具有默认值的数组时,* 我注意到了一些怪异( 和危险的恕我直言 )行为。如Swift 2.1中所述:集合类型 * Swift的Array类型还提供了一个初始化程序,用于创建一个特定大小的数组,并将其所有值设置为相同的默认值。您向此初始值设定项传递要添加到新数组中的项目数(称为count)和适当类型的默认值(称为repeatedValue): 关键是: 相同的默认值 ;为了了解它

  • 问题内容: 如何创建以下注释的实例(所有字段均设置为其默认值)。 我试过了,但这似乎不起作用… 问题答案: 您无法创建实例,但至少要获取默认值 然后,可以使用动态代理返回默认值。据我所知,这也是Java本身处理批注的方式。

  • 对MongoDB来说相当陌生。在查文件。 https://docs.MongoDB.com/manual/reference/method/db.collection.insert/#id-field 如果文档没有指定_id字段,那么MongoDB将添加_id字段,并在插入之前为文档分配唯一的ObjectId。大多数驱动程序创建ObjectId并插入_id字段,但是如果驱动程序或应用程序不创建_i