【问题标题】:Parsing error: Object of class stdClass could not be converted to string解析错误:stdClass 类的对象无法转换为字符串
【发布时间】:2014-02-26 05:44:06
【问题描述】:

我正在使用 twitter api 来检索最喜欢的推文,然后使用模板对其进行解析:

$favs_list = $this->connection->get('favorites/list');
$data_to_parse['fav_list'] = $fav_list;
$html = $this->parser->parse('templates/tweet_list', $data_to_parse, TRUE);
$output['html'] = $html;
$this->load->view('read', $output);

模板tweet_list 很简单:

<h3>Favs:</h3>
{fav_list}
<h5>{text}</h5>
{/fav_list}

但我不断收到这两个错误,并重复多次:

A PHP Error was encountered    
Severity: 4096     
Message: Object of class stdClass could not be converted to string     
Filename: libraries/Parser.php
Line Number: 143

A PHP Error was encountered   
Severity: Notice     
Message: Object of class stdClass to string conversion     
Filename: libraries/Parser.php    
Line Number: 143

奇怪的是,在这些错误下,我的 html 以正确的格式显示。 知道是什么原因造成的吗?

【问题讨论】:

  • 我认为 $favs_list 是标准对象数组,你可以将它转换为简单数组,然后就完成了。
  • @RakeshSharma $html 解析后基本上是我的模板tweet_list。见:ellislab.com/codeigniter/user-guide/libraries/parser.html
  • @TheMohanAhuja 怎么做?
  • 我不知道最佳方法,但我通常使用 json_encode(json_decode ($favs_list, true));
  • 对不起我的错误请试试这个 json_decode(json_encode ($favs_list), true);

标签: php codeigniter parsing templates


【解决方案1】:

我不知道最佳方法,但我通常会这样做

json_decode(json_encode ($favs_list), true);

【讨论】:

  • 只是好奇,你是怎么知道的?
  • @Conan 当我从 mysql 获取数据时,我通常以对象格式获取数据,我只使用这种方式跳过。我就是这么知道的。
【解决方案2】:

您正在尝试打印出favs_list,但内容是一个对象,并且很难尝试转换该对象。

只需将对象转换为数组并相应地使用

$array = (array) $object;

在你的情况下

$favs_list = $this->connection->get('favorites/list');
$data_to_parse['fav_list'] = (array) $fav_list;

【讨论】:

    猜你喜欢
    • 2013-07-03
    • 2014-11-21
    • 2017-09-21
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    相关资源
    最近更新 更多