未定义的偏移量:php数组中的0

时间:2015-08-03 13:38:52

标签: php arrays object

if ( count( $entry_array>0 ) )  
{
    $GLOBALS[ 'year' ] = substr($entry_array[0], 5, 2);     //line 22 
    $GLOBALS[ 'month' ] = substr($entry_array[0], 7, 2);    //line 23     
    $GLOBALS[ 'day' ] = substr($entry_array[0], 9, 2);      //line 24     
}
  第22,23,24行的

错误说明:未定义的偏移:0

任何解决此问题的想法......

4 个答案:

答案 0 :(得分:7)

if应阅读

if (count($entry_array) > 0)

在您的代码中,您正在评估$entry_array > 0,它将返回一个布尔值。然后,您将获得该值的countalways usually results in 1 if the argument is not an array

当将1评估为bool(对于if)时,它的计算结果为true,因此即使数组为空,最终也会执行if的主体。

所以它不能保证工作,因为你的数组可能没有索引0,但可能这是原因,所以我先试试这个。

答案 1 :(得分:0)

if (count( $entry_array) > 0)   {

//line 22     $GLOBALS[ 'year' ] = substr($entry_array[0], 5, 2);

//line 23     $GLOBALS[ 'month' ] = substr($entry_array[0], 7, 2);

//line 24     $GLOBALS[ 'day' ] = substr($entry_array[0], 9, 2);    }

if块没有适当的缩进。

答案 2 :(得分:0)

if(count($entry_array)>0 && isset($entry_array[0]))
{
  //your code

}

答案 3 :(得分:0)

将其更改为类似的内容,

if (count($entry_array)>0)  {
     ....
    }

 if (is_array($entry_array)&&count($entry_array)>0&&isset($entry_array[0]))  {
      ...
     }