Notice: Undefined variable: key in Z://// )on line 22
22 строка:
$key .= $arr[(round(($rand * 1000 - floor($rand * 1000)),2) * 100 )];
а эта ошибка, как я понимаю тащит следующую:
Warning: Cannot modify header information - headers already sent by
вот весь скрипт пользовательской функции:
function rand_str($num = 10)
{
$arr_num = range("0","9");
$arr_let = range("a","z");
$arr = array_merge($arr_num,$arr_let);
$arr = array_merge($arr,$arr);
$arr = array_merge($arr,$arr_let);
$arr[] = "a";
$rand = microtime(true);
for($i = 0; $i < $num; $i++)
{
shuffle($arr);
$key.= $arr[(round(($rand * 1000 - floor($rand * 1000)),2) * 100 )];
$rand = microtime(true);
}
return $key;
}
$p=rand_str();
print "p=".$p."<br>";
Подскажите:
Спустя 11 минут, 9 секунд (26.06.2010 - 08:22) kirik написал(а):
Перед циклом for объявите переменную $key.
Спустя 7 минут, 26 секунд (26.06.2010 - 08:30) ABC написал(а):
Спасибо!!!...все заработало, а не подскажите почему необходимо делать объявление, разве в ПХП это необязательно?
Спустя 12 минут, 25 секунд (26.06.2010 - 08:42) twin написал(а):
Скажем так: очень желательно.
Спустя 22 минуты, 23 секунды (26.06.2010 - 09:04) ABC написал(а):
Спасибо.
Спустя 1 час, 32 минуты, 28 секунд (26.06.2010 - 10:37) vagrand написал(а):
Присвоение значения переменной уже есть ее объявление и инициализация в добавок. Просто в твоем случае нужно было вместо:
$key .= $arr ....;
написать
$key = $arr ....;
$key .= $arr ....;
написать
$key = $arr ....;
Спустя 35 минут, 28 секунд (26.06.2010 - 11:12) twin написал(а):
Неверно. Там как раз нужна конкатенация. Но присоединить что то можно к пустой переменной, а не к несуществующей. В том и разница.
Спустя 9 минут, 51 секунда (26.06.2010 - 11:22) vagrand написал(а):
twin
По куску кода, который привел автор, непонятно нужна она там или нет. Я написал из-за чего варнинг вылезл.
По куску кода, который привел автор, непонятно нужна она там или нет. Я написал из-за чего варнинг вылезл.
Спустя 28 минут, 14 секунд (26.06.2010 - 11:51) twin написал(а):
Очень даже понятно. Если не будет конкатенации - на выходе будет не строка а один символ.
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.