Как исправить ошибку PHP Strict "Создание объекта по умолчанию из пустого значения"?
У меня есть следующий код PHP5:
$request = NULL;
$request->{"header"}->{"sessionid"} = $_SESSION['testSession'];
$request->{"header"}->{"type"} = "request";
Строки 2 и 3 вызывают следующую ошибку:
PHP Строгие стандарты: создание объекта по умолчанию из пустого значения
Как я могу исправить эту ошибку?
Ответы
Ответ 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
Не пытайтесь установить атрибуты с нулевым значением? Вместо этого используйте ассоциативный массив.