2016-09-04 6 views

ответ

6

В вашем примере $per является числом с плавающей запятой (0.2). Оператор принимает только по модулю два целочисленных операндов, согласно PHP manual:

Операндов по модулю преобразуется в целые числа (путем удаления десятичной части) перед обработкой. Для модуля с плавающей запятой см. fmod().

Поскольку оператор принимает только целочисленные операнды, $per со значением 0.2 преобразуется в 0, что дает ошибку. Как предлагается в руководстве, вы можете использовать fmod в качестве альтернативы:

$new = fmod($a, $per);