Предупреждение: str_repeat(): Второй аргумент должен быть больше или равен 0

77
8

Я использовал это некоторое время назад, чтобы захватить изображения от чего-то, но так как я просто попытался использовать его снова, он дал мне эту ошибку:

Предупреждение: str_repeat(): Второй аргумент должен быть больше или равен 0 в C:\inetpub\wwwroot\resource_update.php в строке 121

Это функция для того, что она имеет в виду, поэтому, если кто-то может помочь, это будет здорово:

function consoleLogProgressBar($current, $size, $unit = "kb")
{
$length = (int)(($current/$size)*100);
$str = sprintf("\r[%-100s] %3d%% (%2d/%2d%s)", str_repeat("=", $length).($length==100?"":">"), $length, ($current/($unit=="kb"?1024:1)), $size/($unit=="kb"?1024:1), " ".$unit);
consoleLog($str, true);
}

спросил(а) 2021-01-25T18:07:10+03:00 5 месяцев назад
1
Решение
117

Кажется, что $length возвращает отрицательное число? Вы можете устранить неполадку следующим образом:

$length = (int)(($current/$size)*100);
var_dump($length);
exit;

Если это так, то вы можете обернуть его в функцию abs() которая всегда будет возвращать абсолютное значение:

$length = (int) abs(($current/$size)*100);

Конечно, это уродливый взлом и не решает реальной проблемы. В любом случае, первый шаг определяет, почему $length - это не то, что вы ожидаете.

ответил(а) 2021-01-25T18:07:10+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема