PHP数组警告:从空值创建默认对象
我将MySQL查询中的值放入一个数组中,以便对它们进行排序。这一切都很好,除了我有很多错误PHP数组警告:从空值创建默认对象,php,arrays,object,Php,Arrays,Object,我将MySQL查询中的值放入一个数组中,以便对它们进行排序。这一切都很好,除了我有很多错误 Warning: Creating default object from empty value 这样我就可以根据post_id和质量对数组进行排序 $count = 0; $searcharticles = new stdClass(); $postid = 0; while ($row = mysqli_fetch_object($result1) ) { $postid =
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=新stdClass()
但这并没有解决问题
我希望删除错误,而不仅仅是抑制警告
有什么想法吗?你得到警告了吗
警告:从空值创建默认对象
因为你知道
$searcharticles->$postid->post_id = $postid;
您的$searcharticles
是一个StdClass。分配属性$postId
,然后立即链接另一个属性post\u id
,这将强制PHP创建一个新的默认对象
要避免这种情况,请将其放在链式方法调用之前:
$searcharticles->$postid = new StdClass;
$searcharticles->$postid->post_id =$postid;
$searcharticles->$postid->title =$title;
$searcharticles->$postid->titlescore = $titlescore;
$searcharticles->$postid->quality =$quality;
也许你的问题不是$searcharticles,可能是$row 试一试
祝你好运 可能是重复的不我先试过了。这就是我尝试添加$searcharticles=new stdClass()的原因;$postid=new stdClass();代码行。是$postid是一个整数。我已将代码更改为$postid=0;但是错误是相同的,你想创建什么类型的结构?创建由整数
$postid
命名的对象属性令人困惑。如果$searcharticles
是一个集合,那么它应该是一个对象数组,例如,您正在创建$searcharticles[$postid]->title=$title
。。。。然后需要首先将每个数组项初始化为新的stdClass:$searcharticles[$postid]=new stdClass()
而不是将$searcharticles
创建为stdClass,而是将其创建为数组()
。
$searcharticles = new stdClass; AND $row = new stdClass;