**PHP错误Cannot use object of type stdClass as array in错误的
错误:将PHP对象类型当做了PHP数组 解决方法:用对象操作符->
今天在PHP输出一个二维数组的时候,出现了“Fatal error: Cannot use object of type stdClass as array in……”。
这个二维数组是这样的:
Array (
[0] => stdClass Object (
[id] => 1
[title] => 首页招聘
[size] => 297*140
[pic] => ./upload/20130302093535.jpg
[state] => 0 )
[1] => stdClass Object (
[id] => 2
[title] => 首页领队
[size] => 297*140
[pic] => ./upload/20130302093443.jpg
[state] => 0 )
)
输出开始写的方法是:$pic[0][title]
结果就出现上面的错误。
其实,数组中是返回的是一个对象,不能直接用[]来显示,正确的输出方法是:$pic[0]->title (不用加引号 )
错误的:
foreach($user_list as $user_key => $user_value){
foreach ($data as $data_key => $data_value){
if($user_list[$user_key][‘user_mobile‘] === $data_key){
$user_list[$user_key][‘contacts_username‘] = $data_value;
break;
}
}
}
正确:
$user_list =$this->m_user->match_user_mobile($column_str, $mobile_array, $page_num, $page_size);
//遍历$user_list,追加通讯录的用户名
//遍历二维数组
foreach($user_list as $user_key => $user_value){
foreach ($data as $data_key => $data_value){
if($user_list[$user_key]->user_mobile === $data_key){
$user_list[$user_key]->contacts_username = $data_value;
break;
}
}
}
--------------------------------------------
public function match_user_mobile($column_str, $mobile_array, $page_num, $page_size)
{
$this->db->select($column_str);
$this->db->from(‘xm_user‘);
$this->db->where_in(‘user_mobile‘, $mobile_array);
//$this->db->limit(10, 20); 生成: LIMIT 20, 10 (仅限MySQL中。其它数据库有稍微不同的语法)
$this->db->limit($page_size, ($page_num - 1)*$page_size);
$query = $this->db->get();
//var_dump($query); 测试
//row_array取一行数据;result_array取多行数据,返回关联数组;result返回对象数组
return $query->result_array();
}
总结:
如果数据库用result返回,那么就是PHP对象数组,需要用对象操作符->
如果是result_array返回,那么就是PHP关联数组,用[]即可
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。