我已将MySQL查询中的值转换为数组,以便我可以对它们进行排序。这一切都很好,除了我收到很多错误
Warning: Creating default object from empty value
这样我就可以根据post_id和quality
对数组进行排序$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();
但这还没有解决问题
我希望删除错误,而不仅仅是取消警告。
有什么想法吗?
答案 0 :(得分:1)
你收到警告
警告:从空值
创建默认对象
因为你做了
$searcharticles->$postid->post_id = $postid;
您的$searcharticles
是StdClass。您分配属性$postId
,然后立即链接另一个属性post_id
,这会强制PHP创建一个新的默认对象。
为避免这种情况,请在链式方法调用之前输入:
$searcharticles->$postid = new StdClass;
$searcharticles->$postid->post_id =$postid;
$searcharticles->$postid->title =$title;
$searcharticles->$postid->titlescore = $titlescore;
$searcharticles->$postid->quality =$quality;
答案 1 :(得分:0)
也许您的问题不是$ searcharticles,可能是$ row。
尝试
$searcharticles = new stdClass; AND $row = new stdClass;
祝你好运!