PHP Array Warning: Creating default object from empty value

11,992

You get the warning

Warning: Creating default object from empty value

because you do

$searcharticles->$postid->post_id = $postid;

Your $searcharticles is a StdClass. You assign the property $postId and then immediately chain off another property post_id, which forces PHP to create a new default object.

To avoid it, put this before the chained method calls:

$searcharticles->$postid = new StdClass;
$searcharticles->$postid->post_id =$postid;
$searcharticles->$postid->title =$title;
$searcharticles->$postid->titlescore = $titlescore;
$searcharticles->$postid->quality =$quality;
Share:
11,992
Jonty5817
Author by

Jonty5817

Updated on June 13, 2022

Comments

  • Jonty5817
    Jonty5817 almost 2 years

    I have taken values from a MySQL query into an array so that I can sort them. It all works well except I am getting lots of errors

     Warning: Creating default object from empty value 
    

    This is so that I can sort the array based on post_id and 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 ++;
    } 
    

    Some posts on Stackexchange indicated that I should add in $searcharticles = new stdClass();

    But this has not solved the problem

    I am looking to remove the errors and not just suppress the warnings.

    Any ideas?