Ошибки цикла for

SSFN

Новичок
Вот код:
----------------------------------------------------------------------------------------------------------------
$str = "abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for($i=0; $i<15; $i++){ $pp=substr($str, rand(0, strlen($str)), 1);$p="$p$pp";}
echo $p;
----------------------------------------------------------------------------------------------------------------
Скрипт возвращает строку,длиной 15 символов($i < 15),должен возвращать.... но,в итоге,длина колеблется от 13 до 15 символов.КАК???ведь задано условие - повторять,пока переменная не будет равна 15 символам!
Помогите,пожалуйста, разобраться!... даже интересно,почему цикл обходит заданное условие?
 

rj45

Новичок
К задачникам обычно можно купить сборник решений...
 

С.

Продвинутый новичок
Что будет в $pp, Если выбирается максимальное число в рандоме?

А вообще отладкой надо заниматься самому. Выдавать все значения на каждом шаге цикла, а не попрошайничать на форуме.
 

SSFN

Новичок
Что будет в $pp, Если выбирается максимальное число в рандоме?

А вообще отладкой надо заниматься самому. Выдавать все значения на каждом шаге цикла, а не попрошайничать на форуме.
Да причем здесь "попрошайничать"... я про отладку только сейчас узнал.
И что дает то,что выбирается максимальное число?
Почему цикл не следует заданному значению $i < 10 ?

К задачникам обычно можно купить сборник решений...
Какие задачники... начал самостоятельно изучать php,вот написал код,и не могу понять,в чём ошибка.
 

rj45

Новичок
Не огорчай комунити, такие вопросы негоже задавать на форумах. И вообще, почитай про фарматирование кода.
 

rj45

Новичок
Почитай про нумирацию массиво, про то какое число возвращает strlen. Если ты запустишь этот скрипть с Е_ALL то всё сразу поймёшь
 

iKengoSoft

Новичок
PHP:
$str = "abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$len1 = strlen($str);
echo "len1=" . $len1;
for($i=0; $i<15; $i++)
{ 
     $randomnumber = rand(0, $len1);
	 echo "<br />randomnumber=" . $randomnumber . "for i=" .$i;
     $pp=substr($str, $randomnumber, 1);
	 echo "&nbsp; pp=" .$pp;
	 $p="$p$pp";
}
echo "<br />" . $p;
$len = strlen ($p);
echo "<br />" . $len;
http://php.su/functions/?substr
 
Сверху