$var==1, (путаница в типе данных)

381
.
точка невозврата
Я очень часто сталкиваюсь с проблемой, когда проверка условия if($var == 1) возвращает true при любом значении переменной $var, кроме пустого и нуля. Проверка идет на булев тип, а не на цифру, и выскакивает ошибка. Из за этого я стараюсь не давать переменным значения 1 или 0, чтобы не возникала путаница при проверке. Есть ли другой путь решения проблемы?
.
хм... Странно.. Почти половина моего кода построенна на таких условиях, и всё нормально...
.
Кадило крутится, лавэха мутится
if($var === 1)
так делай
.
точка невозврата
hooligan, если только 1 и 0, то всё в порядке, а если есть и другие цифры, то они путаются при проверке.
.
точка невозврата
Simba, проверять на идентичность? Надо попробовать.
.
if((int)$var == 1)
Или так как вариант
.
Поверь в мечту!
да,действительно сейчас сам проверил и вместо 1 поставил любое другое число,даже ряд произвольных чисел...и условие выполнилось
.
L!MP
Это особенность языка программирования.
Необходимо производить сравнение с учетом типов данных. Максим уже все написал по этому поводу
.
zumak
Поверь в мечту!
хм,написал условие наоборот и работать стало четко даже при подстановки 0 условие не срабатывает на true
if($var != 1 )

вообщем true работает только на 1
.
SAN
То есть вот такой код выведет "Bingo!"?
$var = 123;
if ($var == 1)
   echo 'Bingo!';


Можно тогда результат вот такого кода увидеть?
$var = 123;
var_dump($var);
var_dump(($var == 1));


Ну и такого для кучи:
echo phpversion();
Всего: 23