如何修复PHP Strict错误"从空值创建默认对象"?

Jak*_*ake 17 php

我有以下PHP5代码:

$request = NULL;
$request->{"header"}->{"sessionid"}        =  $_SESSION['testSession'];
$request->{"header"}->{"type"}             =  "request";
Run Code Online (Sandbox Code Playgroud)

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

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

我该如何解决这个错误?

Yac*_*oby 40

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";
Run Code Online (Sandbox Code Playgroud)

我建议使用数组,因为它是一个更简洁的语法(可能)相同的底层实现.


Bra*_*rad 13

摆脱$ request = NULL并替换为:

$request = new stdClass;
$request->header = new stdClass;
Run Code Online (Sandbox Code Playgroud)

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