用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2722|回复: 5
收起左侧

[HELP] 关于一个问题!打印输出

[复制链接]
发表于 2011-12-29 16:43:15 | 显示全部楼层 |阅读模式
本帖最后由 阿呆 于 2011-12-29 17:26 编辑

  $my_recent_cmts = $this->comments_mdl->get_cmts_by_owner('comment', 'approved', $this->user->uid, 5, 0);
  //echo($my_recent_cmts->result()->pid);    //这里 会输出错误
  //exit();
  if($my_recent_cmts->num_rows() > 0)
  {
   foreach($my_recent_cmts->result() as $recent_cmt)
   {
    //echo($recent_cmt->pid);   //这里 输出正确

    //exit();
    $recent_cmt->parent_post = $this->posts_mdl->get_post_by_id('pid', $recent_cmt->pid);
   }
  }


上面的echo会出错,下面的却正确,是为什么啊。
还有  $recent_cmt->parent_post   这个东西是什么。

print_r这个( $my_recent_cmts )结果是:

CI_DB_mysql_result Object ( [conn_id] => Resource id #36 [result_id] => Resource id #70 [result_array] => Array ( ) [result_object] => Array ( ) [current_row] => 0 [num_rows] => 1 [row_data] => )

发表于 2011-12-29 18:20:23 | 显示全部楼层
result()返回一个数组型的结果集,所以下面foreach每一个结果对象以后就可以用对象->属性来访问了。
 楼主| 发表于 2011-12-29 20:03:27 | 显示全部楼层
huboo82 发表于 2011-12-29 18:20
result()返回一个数组型的结果集,所以下面foreach每一个结果对象以后就可以用对象->属性来访问了。 ...

按道理这2个应该是一样的啊
1、$my_recent_cmts->result()->pid
2、$recent_cmt->pid


但1却不可以输出,提示错误!
发表于 2011-12-30 01:23:34 | 显示全部楼层
似乎是因为上面没有foreach啊,查询返回的结果集没有foreach()来拆开就直接用->pid去取的话肯定不行啊
 楼主| 发表于 2011-12-30 14:57:03 | 显示全部楼层
哦。还想请问一下   这个是什么东西?哪里来的。
$recent_cmt->parent_post
 楼主| 发表于 2011-12-30 16:25:55 | 显示全部楼层
本帖最后由 阿呆 于 2011-12-30 16:26 编辑
sosospicy 发表于 2011-12-30 15:05
用result()获取到的是对象结果集 所以用 ->访问元素
若用result_array()来后去,则获取到的是数组结果集 ...

我发现foreach里面的

这个东西是随意写的也行。$recent_cmt->parent_post
例:parent_post可以换成任意变量
会被自动当作数组添加到result()集中。   

不知道是怎么回事,引用吗?

本版积分规则