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

544
.
точка невозврата

Я очень часто сталкиваюсь с проблемой, когда проверка условия 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