== или ===

iAm

Новичок
== или ===

Здравствуйте.
У меня вопрос следующего плана.
PHP:
if(1 == TRUE) echo 'right';
Выведет right, потому что 1 и TRUE равны (равны-то они равны, но разного типа).

Если же сравнить тождественно:
PHP:
if(1 === TRUE) echo 'right';
То, соответсвенно, этот кусочек кода ничего в ответ не выдаст.

У меня есть проверка:
PHP:
if($some_var == 'blah-blah-blah') echo 'right';
Необходимо ли сопоставлять еще и типы сравниваемых значений? То есть возможно ли подставить в $some_var какое-нибудь не строковое значение, которое прошло бы удачно вышепреведенную проверку? :)
 

Lisi4ka

Новичок
Необходимо ли сопоставлять еще и типы сравниваемых значений?
этот те лучше знать надо - стоит или не стоит.

То есть возможно ли подставить в $some_var какое-нибудь не строковое значение, которое прошло бы удачно вышепреведенную проверку?
что нам говорит эксперимент?
 

vittorio

Новичок
garlian
false еще. Это тоже никак не true.
iAm

То есть возможно ли подставить в $some_var какое-нибудь не строковое значение, которое прошло бы удачно вышепреведенную проверк
Невозможно. Сопоставление типов нужно в основном тогда, когда значение может принимать, скажем 0 и false.
 

XtremallyPurpur

Новичок
iAm

Строки лучше сравнивать специально предназначенными для этого функциями.
 

kruglov

Новичок
Делал как-то проверку записи в базу, если информация не изменилась, то сказать "нечего сохранять" и не сохранять. Так при ==, если у меня в базе в текстовом поле написано 5, то 05 я туда записать не смогу. Поэтому тут нужна проверка через ===.
 
Сверху