Использование == и === в php

Возможный дубликат:
Что означает ===?

Меня смущает использование этих операторов в php, я не совсем уверен, когда я должен использовать === и когда ==.

например, почему/когда я должен написать:

if( $some_method_that_returns_something_or_false() === FALSE) {
      //do stuff
}

а когда с ==?

Кроме того, означает ли ===, что я должен вернуть bool FALSE или я могу вернуть 0? Когда использование === или == считается плохой практикой?

Также при размещении чего-то вроде этого:

 if($some_method_that_returns_true_or_false()) {

 }

это $some_method_that_returns_true_or_false() == TRUE или some_method_that_returns_true_or_false() === TRUE?


person ignite1688846    schedule 25.09.2012    source источник
comment
Для этого вопроса здесь должно быть 1000 дубликатов. Попробуйте воспользоваться поиском вверху справа.   -  person karim79    schedule 25.09.2012


Ответы (2)


=== означает точное значение, поэтому для true оно должно быть true, а == проверяет значение значения, поэтому true также будет значением «1» или любой другой строкой.

person Mihai Dragoi    schedule 25.09.2012
comment
Я вижу, так по существу. Если я хочу, чтобы он был строго логическим, а не, например, каким-то объектом и т. д., я использую ===. - person ignite1688846; 25.09.2012
comment
Не любая строка; "0" != true и "" != true - person Ja͢ck; 25.09.2012

== используется для проверки равенства, а === используется для проверки равенства, а также типа.

И

if($some_method_that_returns_true_or_false()) {

}

проверяет $some_method_that_returns_true_or_false() == TRUE

person Yogesh Suthar    schedule 25.09.2012