Подтвердить что ты не робот

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

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

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

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

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

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

4b9b3361

Ответ 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 вместо фактического объекта.

Ответ 3

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

error_reporting(0);

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

$request = new stdClass();

HTH

Ответ 4

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