С головой в PHP. Пособие для новичков 7-8 часть (оценка: 1)
7. Следить за двойным знаком равенства.
Это поможет избежать трудно находимых ошибок. Просто каждый раз набирая этот символ, обращайте внимание на то что у вас получилось.
Если вы все же растяпа и уже раза три четыре искали ошибку пару часов к ряду, то можно воспользоваться маленькой хитростью: при сравнении переменных с числом или строкой просто меняйте их местами. То есть не так:
А вот так:
Если вы наберете всего одно "равно", выскочит ошибка, которая укажет на нужную вам строку.
8. Не сравнивать числа с плавающей точкой.
В силу их реализации в PHP результат может быть удивительным, например:
$a = 15.9; //=> float 15.9
$b = 5.3 * 3; //=> то же, float 15.9
var_dump($a == $b); //=> думаете равно? false
Если хотите сделать это правильно (подсказано reaper) то следует использовать библиотеку libbcmath:
Или сравнивать через погрешность):
$equals = ( abs($a - $b) < EPS
);
Где EPS - погрешность (0.1, 0.0001, 0.00000000001) в зависимости от задачи.
Или самый простой (но самый некрасивый), это преобразовывать float в string и сравнивать числа как строки:
$a = 15.9; //=> float 15.9
$b = 5.3 * 3; //=> то же, float 15.9
var_dump((string
)$a == (string
)$b); //true