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

11 浏览
0 Comments

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

我有以下的PHP5代码:

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

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

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

我该如何修复此错误?

admin 更改状态以发布 2023年5月23日
0
0 Comments

不要使用 $request = NULL,而是替换为:

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

你试图向 NULL 写入而不是一个实际的对象。

0
0 Comments

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";

我建议使用数组,因为它具有更整洁的语法,并且(很可能)具有相同的基本实现。

0