Как исправить ошибку PHP Strict "Создание объекта по умолчанию из пустого значения"? - PullRequest
17 голосов
/ 23 декабря 2009

У меня есть следующий код PHP5:

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

Строки 2 и 3 выдают следующую ошибку:

Строгие стандарты PHP: создание объекта по умолчанию из пустого значения

Как я могу исправить эту ошибку?

Ответы [ 4 ]

40 голосов
/ 23 декабря 2009

Нуль не является объектом, поэтому вы не можете присвоить ему значения. Из того, что вы делаете, похоже, вам нужен ассоциативный массив . Если вы не можете использовать объекты, вы можете использовать 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";

Я бы порекомендовал использовать массивы, так как это более точный синтаксис с (вероятно) той же базовой реализацией.

13 голосов
/ 23 декабря 2009

Избавьтесь от $ request = NULL и замените на:

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

Вы пытаетесь записать в NULL вместо реального объекта.

4 голосов
/ 23 декабря 2009

Для подавления ошибки:

error_reporting(0);

Чтобы исправить ошибку:

$request = new stdClass();

НТН

1 голос
/ 23 декабря 2009

Не пытаетесь установить атрибуты на нулевое значение? Вместо этого используйте ассоциативный массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...