Объект класса stdClass не может быть преобразован в строку — при возврате объекта из функции

Этот сбил меня с толку некоторое время.
Я пытаюсь вернуть свой $ content (объект) из своей функции, и я получаю фатальную ошибку:

Объект класса stdClass не может быть преобразован в строку

if (filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED))
{
$content = json_decode($this->_revApiCall($url));
var_dump( $content);
return($content);
}

Это работало нормально, но потом это начало давать мне это.
Если я удалю return ($ content), фатальная ошибка исчезнет.

Следует также отметить, что в отчете об ошибках всегда упоминается одна и та же строка для ошибки, хотя для целей тестирования я немного переместил код.
Может ли это быть проблемой с кешем — я не знаю — другие изменения в коде влияют на выполнение скрипта.

В любом случае,

return $content

выдает фатальную ошибку — в строке, где нет кода, и я пока ничего не понимаю.

0

Решение

Я выяснил, в чем проблема.

Приведенный выше код является частью модуля Joomla и находится внутри класса helper.php модуля.

Все до этого момента прекрасно и ничего загадочного в том, что такое $ content (это действительно объект — единственный объект, который я там ожидаю), — и ничего общего с тем, откуда он взялся.

if (filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED))
{
$content = json_decode($this->_revApiCall($url));
var_dump( $content);
return($content);
}

Затем я вызывал эту функцию, чтобы получить $content объект изнутри моего модуля module.php

Я назначал $content Объект для переменной с именем $ content, например, так:

$helper = new ModuleHelper($params);
$content = $helper->returnContentObject();

Пока все выглядит очевидным. Но это где проблема сидела.

И была проблема — потому что $content является «загадочной» переменной, используемой модулем рендеринга модулей Joomla — здесь можно найти дополнительную информацию: Тайна с переменной $ content в модулях Joomla.

И несмотря на то, что мой код делал очевидные вещи, была параллельная процедура за кулисами.

И да, мой error_reporting всегда указывал мне на ту же строку рядом с методом моего помощника return $content код — и это было полностью в заблуждение.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]