2013-12-18 3 views
0

я работал на каком-то коде, сделанный кем-то другим, и попадался, если утверждение, что выглядит эту IF ($ Рез === верно) { do_something();}Три знака равенства в сравнении PHP

Этот код называется много раз и, кажется, работает. Что он делает?

Я знаю, что один равный - это назначение, а два - сравнение. Что означает три оператора sign sign?

ответ

2

Самый простой способ увидеть это: == проверяет равенство и === проверяет идентичность. Equality проверит значение, но идентичность также проверит тип переменной.

Примеры:

var_dump('true' == true); // bool(true) 
var_dump('true' === true); // bool(false) 
+1

Ваши примеры только добавят к путанице для кого-то, у кого уже есть проблемы с этим предметом. Любая непустая строка имеет значение boolean true, но для использования «true», поскольку примерная строка просто загрязняет воду. – Shazbot

+0

Поскольку мы объясняем разницу между чем-то равным и чем-то идентичным, использование строки с именем true идеально подходит. Использование чего-то другого, кроме истинного, просто должно было бы запутать пользователя еще больше, поскольку они даже не похожи друг на друга. – ollieread

1

Это «идентичный» оператор. Они должны быть точно такими же, чтобы передать это условие.

The 3 different equals

1

Три === означает, что результат должен быть идентичным. В первый раз это было неправильно :)

+0

Я не понимаю, почему кто-то вниз голосовать это? это верно. 3 = знаки означают, что он должен быть ИДЕНТИЧНЫМ. и это то, что я написал, я не вижу проблемы. – Ljubisa

+0

PHP не имеет «тип данных», и это не сравнение объектов, это фактически переменный тип. Он будет работать с объектами, несколько. – ollieread

+0

ОК, может быть, я не сказал это правильно, но я пытался сказать то же самое, что вы сказали, что он должен быть ИДЕНТИЧНЫМ. – Ljubisa

Смежные вопросы