Я учусь о CakePHP, и я вижу много условными, как:В чем разница между == и ===?
if(x === y){
}
Я смотрел на это, но я не нашел ничего.
Я учусь о CakePHP, и я вижу много условными, как:В чем разница между == и ===?
if(x === y){
}
Я смотрел на это, но я не нашел ничего.
==
сравнивает значения двух переменных. Если они имеют разные типы, они преобразуются в общий тип, а затем сравниваются.
===
, с другой стороны, является более строгим. Это требует, чтобы обе стороны были того же типа.
php> = 5 == "5"
true
php> = 5 === "5"
false
ОК, спасибо !!!! –
==
Виль сделать преобразование автоматического типа, ===
не будет
Это означает, что:
0 == "0"
вычисляет TRUE
, потому что внутренне при сравнении строк и чисел, строка преобразуется в число при использовании ==
,
0 === "0"
оценивает FALSE
, преобразование типа нет, а целое число 0
не равно строке.
Дополнительная информация в documentation и more documentation.
Кроме 0 == "что-то" оценивается как true. Это причина, почему его плохое кодирование не использует строгое сравнение при работе со строками или где оно может быть использовано. Подробнее см. В [последней главе] (http://www.dereuromark.de/2013/01/22/cakephp-tips/). Правило должно быть «как можно более строгим». – mark
ОК, спасибо большое –
http://stackoverflow.com/questions/359494/javascript-vs-does-it-matter-which-equal-operator-i-use – Epsilon
ок, спасибо всем –