Сделать число отрицательным (PHP)

В PHP нет функции, которая делала бы из числа отрицательное число. Написать самому эту функцию очень просто, способов причем масса.

Способ 1

Этот способ является самым быстрым.

<?php function neg1($num) { return $num < 0 ? $num : -1*$num; } ?>

Способ 2

Второй по скорости способ.

<?php function neg2($num) { return (int)('-'.abs($num)); } ?>

Способ 3

Самый медленный, но самый красивый.

<?php function neg3($num) { return -1 * abs($num); } ?>

Заключение

Вообще разница в скорости настолько незначительна, что ее в расчет можно не брать.

Опыт проводился следующим образом: 20000 случайных чисел проверялись на время, 10 тестов каждой функции, затем вычисление среднего значения.

Первый способ показал себя самым быстрым (~0.514 секунд на обработку 200000 чисел). Все-таки без вызова лишних функций проверка идет быстрее.

Второй способ показал себя чуть медленнее (~0.532 секунд на обработку 200000 чисел).

Третий способ показал себя самым медленным (~0.544 секунд на обработку 200000 чисел).

Категории

ПрограммированиеPHPЧисла в PHPЧисла

Читайте также

Комментарии

Артём Фёдоров

А если $number уже является отрицательным числом?

Ответить
Эдуард Максимович

Хрень какую то пишете... Почему просто в функции нельзя вернуть "return -$number;"? И умножение на -1 является более правильным вариантом особенно по сравнению с остальными вариантами

Ответить