Что означает «===»?

Я заметил, что кто-то использует PHP-оператор === которого я не могу понять. Я пробовал это с функцией, и это соответствует сумасшедшим путям.

Каково определение этого оператора? Я даже не могу найти его в объявлении операторов PHP.

     $a === $b (Identical) 

    TRUE, если $a равно $b , и они одного типа. (введенный в PHP 4)

    PHP-документы

    http://www.php.net/ternary

    $ a == $ b Equal TRUE, если $ a равно $ b, за исключением (True == -1), который по-прежнему является True.

    $ a === $ b Идентичный ИСТИНА, если $ a равно $ b, и они одного типа.

     > "5" == 5; True > "5" === 5; False 

    Вы можете прочитать здесь краткое резюме:

    $ a == $ b Equal TRUE, если $ a равно $ b после жонглирования типа.

    $ a === $ b Идентичный ИСТИНА, если $ a равно $ b, и они одного типа.

    В PHP вы можете сравнить два значения с помощью оператора == или ===. Разница заключается в следующем:

    PHP – это динамический, интерпретируемый язык, который не является строгим по типам данных. Это означает, что сам язык будет пытаться преобразовывать типы данных, когда это необходимо.

     echo 4 + "2"; // output is 6 

    Вывод представляет собой целочисленное значение 6, потому что + является оператором сложения числа в PHP, поэтому, если вы предоставите ему операнды с другими типами данных, PHP сначала преобразует их в соответствующий тип («2» будет преобразован в 2), а затем выполните операцию.

    Если вы используете == как оператор сравнения с двумя операндами, которые могут быть в разных типах данных, PHP преобразует второй тип операнда в первую очередь. Так:

    4 == "4" // true

    PHP преобразует «4» в 4, а затем сравнивает значения. В этом случае результат будет правдой.

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

    4 === "4" // false

    $x == $y имеет значение TRUE, если значение $ x и $ y одинаково:

     $x = 1; //int type $y = "1"; //string type if ($x == $y) { // This will execute } 

    $x === $y TRUE, если значение $ x и $ y одинаково и тип $ x и $ y одинаковы:

     $x = 1; //int type $y = "1"; //string type if ($x === $y) { // This will not execute } 

    Вы увидите этот оператор на многих динамически типизированных языках, а не только на PHP.

    == попытается преобразовать все, с чем он имеет дело, в типы, которые он может сравнить.

    === будет строго сравнивать тип и значение.

    На любом динамически типизированном языке вы должны быть осторожны с ==, вы можете получить некоторые интересные ошибки.

    Тройное === менее удобно, но безопаснее. Для сравнения вы всегда должны подумать о том, должно ли оно быть === или ==

    Тройка равна знаку ===, чтобы проверить, равны ли две переменные и одного типа.

    Для PHP существует много разных значений, которые может принимать ноль

    1. это может быть логическое значение false
    2. это может быть нулевое значение
    3. Это действительно может быть нуль

    Так что === добавляется, чтобы гарантировать, что тип и значение одинаковы.

    См. Оператор Double и Triple equals в PHP, который я получил для поиска по Google на «PHP three equals operator».

    В какой-то момент он говорит, что:

    Знак double = является сравнением и проверяет, имеет ли переменная / выражение / константа влево то же значение, что и переменная / выражение / константа справа.

    Знак triple = представляет собой сравнение, чтобы увидеть, равны ли две переменные / выражения / константы И имеют один и тот же тип, т. Е. Оба являются строками или оба являются целыми числами.

    Это также дает пример, чтобы объяснить это.

    «===» соответствует значению в переменной, а также типу данных переменной.