[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка в функции вывода случайных знаков
CaguCT
Выскакивает иногда ошибочка такая:
Notice: Undefined offset: 104 in .../function.php on line 164


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

function randStr($num = 10, $sign = false)
{

$a = range(0,9);
$b = range('a','z');
$c = range('A', 'Z');
$d = range('!', '@');

$arr = array_merge($a, $b);
$arr = array_merge($arr, $a);
$arr = array_merge($arr, $c);

if( $sign === true )
$arr = array_merge($arr, $d);

$key = '';
$rand = microtime(true);

for($i = 0; $i < $num; ++$i)
{
shuffle($arr);
$countArr = count($arr);
$key .= $arr[ceil(round(($rand * 1000 - floor($rand * 1000)),2)*$countArr)]; // 164 строка
$rand = microtime(true);
}

return $key;
}




Спустя 1 час, 40 минут, 1 секунда (4.02.2012 - 02:24) sergeiss написал(а):
Могу предположить, но не буду утверждать однозначно. Потому что не просчитывал точно smile.gif

Если ты индексы массиву не задавал, то он будет нумероваться цифрами с нуля и выше. Поэтому максимальный индекс будет на единицу меньше количества элементов.

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

Спустя 5 часов, 40 минут (4.02.2012 - 08:04) CaguCT написал(а):
sergeiss, да действительно, всего 103 элемента, нужно 1 отнимать еще.
Спасибо!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.