2010-09-20 2 views

ответ

3

Поскольку PHP не является безопасным по типу. == сравнивает 2 значения, но === сравнивает значения AND проверяет, одинаковы ли их типы классов.

Я верю, что «2» == 2 возвращает true, а «2» === 2 возвращает false.

10

Фактически equals в Java и == в C# действовать как === делает в php. То есть "24".equals(24) вернет false.

У java и C# нет эквивалента PHP == (т. Е. Оператор/метод, так что "24".fuzzyEquals(24) вернет true). И это потому, что C# и Java строго типизированы, и такой оператор будет против их философии.

0

Просто, чтобы вы знали, что это то же самое в JavaScript, и согласно JSLint, ВСЕГДА следует использовать как проверку типов, что технически делает избыточным. Но я предполагаю, что это просто личные предпочтения

2

, когда мы говорим «А равно В» это может означать несколько совершенно разные вещи

  • А и В одно и то же
  • А и В имеют тот же значение, то есть, их значения не являются различимыми для третьей стороны
  • а и в могут быть преобразованы в строки (или номер), которые равны
  • а и в имеют то же хеш-значение

и т.д.

большинство языков имеют разные операторы и функции для разных видов равенства, см http://en.wikipedia.org/wiki/Equality_%28relational_operator%29#Object_identity_vs._Content_equality

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