php не равен и не равен, равен - PullRequest
6 голосов
/ 04 декабря 2009

Я продолжаю видеть варианты этого:

Не равно !=

Не равно, равно

!==

Какой стандарт или они имеют разные значения?

Я предполагаю, что последний также проверяет значение и имя, если это строка, тогда как Бывший может просто проверить только значение ...

Ответы [ 4 ]

19 голосов
/ 04 декабря 2009

== и != проверяют равенство по значению, и в PHP вы можете сравнивать различные типы, в которых определенные значения называются эквивалентными.

Например, "" == 0 оценивается как true, хотя один является строкой, а другой целым числом.

=== и !== проверьте тип и значение.

Итак, "" === 0 будет оцениваться до false.


Редактировать: Чтобы добавить еще один пример того, как это «жонглирование» может вас поймать, попробуйте это:

var_dump("123abc" == 123);

Дает bool(true)!

6 голосов
/ 04 декабря 2009

Второй тип-строгий.

"1" != 1;  // false
"1" !== 1; // true because the first is a string, the second is a number
5 голосов
/ 04 декабря 2009

!= не равно значению

!== не равно значению и типу

1 голос
/ 04 декабря 2009

в примере:

"2" == 2 -> true

"2" === 2 -> false


"2" !== 2 -> true

"2" != 2 -> false

это также важно , когда вы используете определенную функцию, которая может возвращать 0 или false

например, strpos: вы тоже всегда хотите проверять типы, а не только значения. потому что 0 == false но 0 !== false.

, поскольку strpos может возвращать 0, если строка находится на первой позиции. но это не то же самое, что false, что означает, что строка не была найдена.

...