php - 类 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
产生致命错误 - 在没有代码存在的行上,我目前一无所知。
解决方案
我发现了问题所在。
上面的代码是 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 的模块渲染引擎使用的“神秘”变量 - 可以在此处找到更多信息:Joomla 模块中 $content 变量的奥秘。
尽管我的代码在做显而易见的事情,但在幕后有一个并行的过程。
是的,我的 error_reporting 总是将我指向我的助手方法return $content
代码附近的同一行——这完全是误导。
推荐阅读
- julia - 'UndefVarError: x not defined' 在其模块之外调用宏时(Julia v1.1)
- c# - 声明显式泛型参数和使用约束有什么区别?
- javascript - 根据父组件更改重置 tinymce 内容
- python - Pandas Series.dt.week 与 pd.Period.strftime - 有什么区别?
- node.js - 在 cookie 和本地存储中存储 JWT 有什么好处吗?
- c++ - 如何根据空格标记特殊字符(< > | & 等)
- jquery - jQuery切换完成后立即重置
- javascript - Odoo-12:我创建了一个小部件。我该如何使用它?
- reactjs - 如何修复:错误:ENOENT:没有这样的文件或目录 'src/node_modules/native-base/Fonts'
- git - 需要在 `git log` 上设置哪些标志以使其具有与 `git whatchanged` 相似的输出?