Не могу понять логику проверки: === vs ==

Я учусь проверке, и я просто не могу понять это:

if (strpos($value, "@") === false) { echo "Validation failed." }

В чем разница между === а также ==? и почему мы не можем использовать == вместо этого, а также почему это === false? делает ложным означает, что @ не в $value или это значит 0 ?

1

Решение

Оператор равенства ==
A == B проверяет, равны ли A и B друг другу, но не имеют ли они одинаковый тип данных.

Соответствующий пример: 0 == false правда

Идентификационный оператор ===
A === B проверяет, равны ли A и B друг другу и имеют одинаковый тип данных.

Соответствующий пример: 0 === false ложно

Приложение здесь

Применяя это к вашему делу, если @ был найден в качестве первого символа строки, strpos($value,"@") вернется 0, Если он вообще не найден, он вернется false,

Поэтому, чтобы не путать эти две ситуации, тест должен использовать === скорее, чем ==,

Полезные ссылки:

http://php.net/manual/en/function.strpos.php
http://php.net/manual/en/language.operators.comparison.php

Я предположил, что это php, но операторы равенства и тождества являются общими для многих языков программирования.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]