2015-08-03 4 views
0
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 говоря: Примечание: Undefined смещение: 0Undefined смещение: 0 в PHP массив

Любая идея, чтобы решить эту проблему ..

+0

Что вы пытаетесь достичь? Каково содержимое $ entry_array? – ThomasVdBerge

ответ

7

if следует читать

if (count($entry_array) > 0) 

В вашем коде, вы оцениваете $entry_array > 0, которая Ретур n булево. Затем вы получаете count этого значения, которое always usually results in 1 if the argument is not an array.

При оценке 1 как bool (для if), он принимает значение true, поэтому в итоге вы выполняете тело if, даже если массив пуст.

Таким образом, это не гарантируется, так как, возможно, ваш массив не имеет индекса 0, но, скорее всего, это было причиной, поэтому я бы попробовал это первым.

+0

plus1: я писал то же самое: D – fantaghirocco

+0

@GolezTrol Это сработало отлично. Благодарю. – Webln

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.

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

} 
0

Изменить его на что-то вроде этого,

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

или

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

http://stackoverflow.com/help/formatting –

Смежные вопросы