PHP Notice: Undefined offset: 1 with array when reading data

前端 未结 10 1538
遇见更好的自我
遇见更好的自我 2020-12-04 15:14

I am getting this PHP error:

PHP Notice:  Undefined offset: 1

Here is the PHP code that throws it:

$file_handle = fopen($pa         


        
10条回答
  •  余生分开走
    2020-12-04 15:44

    How to reproduce the above error in PHP:

    php> $yarr = array(3 => 'c', 4 => 'd');
    
    php> echo $yarr[4];
    d
    
    php> echo $yarr[1];
    PHP Notice:  Undefined offset: 1 in 
    /usr/local/lib/python2.7/dist-packages/phpsh/phpsh.php(578) : 
    eval()'d code on line 1
    

    What does that error message mean?

    It means the php compiler looked for the key 1 and ran the hash against it and didn't find any value associated with it then said Undefined offset: 1

    How do I make that error go away?

    Ask the array if the key exists before returning its value like this:

    php> echo array_key_exists(1, $yarr);
    
    php> echo array_key_exists(4, $yarr);
    1
    

    If the array does not contain your key, don't ask for its value. Although this solution makes double-work for your program to "check if it's there" and then "go get it".

    Alternative solution that's faster:

    If getting a missing key is an exceptional circumstance caused by an error, it's faster to just get the value (as in echo $yarr[1];), and catch that offset error and handle it like this: https://stackoverflow.com/a/5373824/445131

提交回复
热议问题