$letter='y';//При значении от a до y выведется что нужно
for($i='a';$i<=$letter;$i++)
echo $i,'<br>';
но вот значение
$letter='z';//Выводятся значения до yz, хотя ожидалось только до z
for($i='a';$i<=$letter;$i++)
echo $i,'<br>';
вопрос: почему так?
$letter='y';//При значении от a до y выведется что нужно
for($i='a';$i<=$letter;$i++)
echo $i,'<br>';
$letter='z';//Выводятся значения до yz, хотя ожидалось только до z
for($i='a';$i<=$letter;$i++)
echo $i,'<br>';
$abc = range('a','z');
//Выводится значение до z
$letter="aa";
for($i="a";$i!=$letter;$i++)
echo $i,'<br>';
$letter="z";//идет вывод до yz, а должен быть результат как в верху
for($i="a";$i!=$letter;$i++)
echo $i,'<br>';
Цитата (linker @ 22.01.2014 - 12:35) |
Насколько я понял, php в этом случае делает ord($i) и сравнивает с ord($letter), когда становится $i = 'z', при следующей итерации $i ++ даёт ord($i) равным меньше чем ord($letter) и потому цикл продолжает выполняться, пока наконец ord($i) не станет равным ord($letter). |