PHP: Правильное округление до ближайшего меньшего целого
Когда я старательно пишу php скрипт, я начинаю задрачиваться на тему оптимизации. И вот в очередной раз, когда мне понадобилось округлить дробное число до ближайшего меньшего целого я задумался над тем, что это можно сделать двумя способами:
- С помощью функции floor()
- С помощью приведения к целочисленному типу(int)
Проведя небольшой эксперемент, я узнал какой способ более эффективен.
Я написал следующий скрипт:
$r = 5464.78345; $start = microtime(1); for($i = 0; $i < 10000; $i++){ $p = (int)$r; } $end = microtime(1); echo $end - $start;
В нем я сначала использовал приведение. Выполнение скрипта дало результат примерно 0.000868 секунды.
После я исправил в скрипте приведение на использование функции floor():
$r = 5464.78345; $start = microtime(1); for($i = 0; $i < 10000; $i++){ $p = floor($r); } $end = microtime(1); echo $end - $start;
В результате получил примерно 0.00200 секунды.
Как видите, использование приведения (int), для округления числа до ближайшего меньшего целого более эффективно.
Теперь я довольный собой буду писать оптимизированые скрипты

