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

我有以下PHP5代码:

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

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

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

我该如何解决这个错误?


空不是一个对象,所以你不能给它赋值。 从你正在做的事情看,你需要一个关联数组。 如果你对使用对象没有兴趣,你可以使用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";

我会推荐使用数组,因为它是一个整洁的语法,可能具有相同的底层实现。


摆脱$ request = NULL并替换为:

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

您正试图写入NULL而不是实际的对象。


要压制错误:

error_reporting(0);

修复错误:

$request = new stdClass();

心连心

链接地址: http://www.djcxy.com/p/59393.html

上一篇: How do I fix the PHP Strict error "Creating default object from empty value"?

下一篇: after upgrading my php5.4 Creating default object from empty value