如何修复PHP严格错误“从空值创建默认对象”?

php
2022-08-30 21:32:07

我有以下PHP5代码:

$request = NULL;
$request->{"header"}->{"sessionid"}        =  $_SESSION['testSession'];
$request->{"header"}->{"type"}             =  "request";

第 2 行和第 3 行产生以下错误:

PHP 严格标准:从空值创建默认对象

如何修复此错误?


答案 1

Null 不是对象,因此无法为其赋值。从你正在做的事情来看,看起来你需要一个关联数组。如果你在使用对象方面已经死了,你可以使用stdClass。

//using arrays
$request = array();
$request["header"]["sessionid"]        =  $_SESSION['testSession'];
$request["header"]["type"]             =  "request";

//using stdClass
$request = new stdClass();
$request->header = new stdClass();
$request->header->sessionid        =  $_SESSION['testSession'];
$request->header->type             =  "request";

我建议使用数组,因为它是一种更整洁的语法,(可能)具有相同的底层实现。


答案 2

去掉 $request = NULL 并替换为:

$request = new stdClass;
$request->header = new stdClass;

您正在尝试写入 NULL 而不是实际对象。


推荐