【发布时间】:2016-01-08 17:40:38
【问题描述】:
我已将 MySQL 查询中的值放入一个数组中,以便对它们进行排序。一切都很好,除了我遇到很多错误
Warning: Creating default object from empty value
这样我就可以根据 post_id 和质量对数组进行排序
$count = 0;
$searcharticles = new stdClass();
$postid = 0;
while ($row = mysqli_fetch_object($result1) ) {
$postid = $row->ID;
$title = $row->post_title;
$titlescore = $row->titlescore;
$quality = $row->quality;
$searcharticles->$postid->post_id =$postid;
$searcharticles->$postid->title =$title;
$searcharticles->$postid->titlescore = $titlescore;
$searcharticles->$postid->quality =$quality;
$count ++;
}
Stackexchange 上的一些帖子表明我应该添加 $searcharticles = new stdClass();
但这并没有解决问题
我希望消除错误,而不仅仅是抑制警告。
有什么想法吗?
【问题讨论】:
-
不,我先试过了。那就是我尝试添加 $searcharticles = new stdClass();和 $postid = new stdClass();代码行。
-
是的 $postid 是一个整数。我已将代码更改为 $postid=0;但错误是一样的
-
您要创建什么类型的结构?创建由整数
$postid命名的对象属性是令人困惑的。如果$searcharticles是一个集合,它应该是一个对象数组,例如您正在创建$searcharticles[$postid]->title = $title。 -
... 然后要求您首先将每个数组项初始化为一个新的 stdClass:
$searcharticles[$postid] = new stdClass();,而不是将$searcharticles创建为 stdClass,而是将其创建为array()。跨度>