TuBu
Guest
Нестрогое сравнение переменных. Правильно ли?
Собственно, даже не проблема.
Просто недавно отлаживал скрипт. И долго крутился вокруг такого места.
$status = get_status(); //Моя функция. Я твердо знал, что она возвращает true в том случае, когда я ее тестировал.
if ($status == "On"){
; //Какой-то код.
}
И вот это место я пропускал, я даже подумать не мог, что проверка проходит! Только после
var_dump($status == "On") (выводит bool(true) )
я что-то начал понимать.
Правильно ли такое поведение?
И если правильно, то почему тогда не выполняется 3 сравнение в таком коде:
Выводит
bool(true) bool(true) bool(false)
В принципе, проблема не суть как страшна. Интересно, как это можно обьяснить...
Собственно, даже не проблема.
Просто недавно отлаживал скрипт. И долго крутился вокруг такого места.
$status = get_status(); //Моя функция. Я твердо знал, что она возвращает true в том случае, когда я ее тестировал.
if ($status == "On"){
; //Какой-то код.
}
И вот это место я пропускал, я даже подумать не мог, что проверка проходит! Только после
var_dump($status == "On") (выводит bool(true) )
я что-то начал понимать.
Правильно ли такое поведение?
И если правильно, то почему тогда не выполняется 3 сравнение в таком коде:
Код:
var_dump(true == 1);
var_dump(true == "On");
var_dump(1 == "On");
bool(true) bool(true) bool(false)
В принципе, проблема не суть как страшна. Интересно, как это можно обьяснить...