Mile05
13.08.2009 - 04:07
Сломал голову над простейшим, казалось бы, фрагментом. При обработке в цикле массива строк, если встречается пустая строка, то что-то в цикле ломается. Но никаких ошибок не выдается. Вот код:
Код |
error_reporting( E_ALL & E_STRICT ); $re=array(1=>"a1",2=>"a2",3=>"",4=>"a4",5=>array("b1","b2")); $q=''; for($ii=1;$ii<=5;$ii++) { echo "i=$ii,re[i]=".$re[$ii].", strlen=".strlen($re[$ii])."\n"; // if ($ii<5 and strlen($re[$ii])>0) $q.=$re[$ii]."~"; if ($ii<5 and $re[$ii]!="") $q.=$re[$ii]."~"; elseif($ii=5) $q.=implode("\n",$re[5]); } echo "Конец прохода по действиям. Строка:$q";
|
Результат получается такой:
i=1,re[i]=a1, strlen=2
i=2,re[i]=a2, strlen=2
i=3,re[i]=, strlen=0
Конец прохода по действиям. Строка:a1~a2~b1
b2
Кто-нибудь может объяснить такие чудеса?
Спустя 11 минут, 55 секунд (13.08.2009 - 03:19) kirik написал(а):
Тут внимательно посмотри: elseif($ii=5)
Спустя 25 минут, 51 секунда (13.08.2009 - 03:45) Guest написал(а):
Цитата (kirik @ 13.08.2009 - 00:19) |
Тут внимательно посмотри: elseif($ii=5) |
Ага, спасибо, это понял. Но все равно непонятно почему результаты были именно такими. Куда девался 4й проход? 5й?
Спустя 4 минуты, 38 секунд (13.08.2009 - 03:50) SunSet написал(а):
Как я думал, тут раздел для начинающих)))Оказывается что нет)
Спустя 14 минут, 56 секунд (13.08.2009 - 04:05) kirik написал(а):
Цитата (Guest @ 12.08.2009 - 19:45) |
Куда девался 4й проход? 5й? |
Ошибок не видишь?
ЗЫ.
А.. у тебя репортинг не правильно включен. Нужно error_reporting( E_ALL | E_STRICT );
Спустя 3 часа, 20 минут, 37 секунд (13.08.2009 - 07:25) Krevedko написал(а):
Цитата (SunSet @ 13.08.2009 - 00:50) |
Как я думал, тут раздел для начинающих)))Оказывается что нет) |
после Попова мне тут поначалу тоже было тяжело )