Вход Регистрация
С головой в PHP. Пособие для новичков 7-8 часть (оценка: 1)
7. Следить за двойным знаком равенства.

Это поможет избежать трудно находимых ошибок. Просто каждый раз набирая этот символ, обращайте внимание на то что у вас получилось.
Если вы все же растяпа и уже раза три четыре искали ошибку пару часов к ряду, то можно воспользоваться маленькой хитростью: при сравнении переменных с числом или строкой просто меняйте их местами. То есть не так:

  1. if($var == 'string')


А вот так:

  1. if('string' == $var)


Если вы наберете всего одно "равно", выскочит ошибка, которая укажет на нужную вам строку.

8. Не сравнивать числа с плавающей точкой.
В силу их реализации в PHP результат может быть удивительным, например:

  1. $a = 15.9; //=> float 15.9
  2. $b = 5.3 * 3; //=> то же, float 15.9
  3. var_dump($a == $b); //=> думаете равно? false


Если хотите сделать это правильно (подсказано reaper) то следует использовать библиотеку libbcmath:

  1. var_dump(bccomp(15.9, 5.3 * 3) == 0); // true


Или сравнивать через погрешность):


  1. $equals = ( abs($a - $b) < EPS );


Где EPS - погрешность (0.1, 0.0001, 0.00000000001) в зависимости от задачи.
Или самый простой (но самый некрасивый), это преобразовывать float в string и сравнивать числа как строки:

  1. $a = 15.9; //=> float 15.9
  2. $b = 5.3 * 3; //=> то же, float 15.9
  3. var_dump((string)$a == (string)$b); //true
Автор: * Taltos * / 12.03.2015 в 12:17
Просмотров: 673
ТОП блогов | поиск | все блоги
Онлайн: 0
Реклама