当从函数返回对象时,类stdClass的对象无法转换为字符串

时间:2018-05-13 09:24:30

标签: php joomla fatal-error joomla-module

这个让我困惑了一段时间。 我尝试从我的函数返回我的$ content(object),我得到了致命的错误:

  

类stdClass的对象无法转换为字符串

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

它工作正常,但后来开始给我这个。 如果我删除了返回($ content)致命错误就会消失。

另一件需要注意的事情是,错误报告提到错误始终是相同的行,尽管出于测试目的,我已经移动了一些代码。 这可能是一个缓存问题 - 我不知道 - 代码的其他更改正在影响脚本的执行。

无论如何,

return $content 

产生致命错误 - 在没有代码的行上,我暂时无能为力。

1 个答案:

答案 0 :(得分:2)

我发现了问题所在。

上面的代码是Joomla模块的一部分,位于模块的helper.php类中。

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

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的模块渲染引擎使用的变量 - 可在此处找到更多信息:The mystery with the $content variable in Joomla modules.

尽管我的代码做了很明显的事情,但幕后有一个并行程序。

是的,我的error_reporting始终指向我帮助程序方法return $content附近的同一行 - 这完全是误导。