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