class stdClass 的对象无法转换为字符串 - 从函数返回对象时

Object of class stdClass could not be converted to string - when returning object from function

这个问题让我困惑了一段时间。 我尝试 return 我的 $content (对象),从我的函数中得到致命错误:

Object of class stdClass could not be converted to string

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 

产生致命错误 - 在没有代码存在的行上,我暂时一无所知。

我找到问题所在了。

以上代码是 Joomla 模块的一部分,位于模块的 helper.php Class.

到目前为止一切都很好,$content 是什么(确实是一个对象 - 我期待的那个对象)没有任何神秘之处 - 与它的来源无关。

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

然后,我调用该函数从我模块的 module.php

中获取 $content 对象

我正在将 $content 对象分配给名为 $content 的变量,如下所示:

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

到目前为止,事情看起来很明显。但这就是问题所在。

还有问题 - 因为 $content 是 Joomla 模块渲染引擎使用的 "mystery" 变量 - 可以在此处找到更多信息:The mystery with the $content variable in Joomla modules.

尽管我的代码做了显而易见的事情,但在幕后有一个并行过程。

是的,我的 error_reporting 总是将我指向助手方法 return $content 代码附近的同一行 - 这完全是误导。