Я заметил, что кто-то использует PHP-оператор ===
, от которого я не могу понять. Я пробовал это с функцией, и это соответствует сумасшедшим образом.
Каково определение этого оператора? Я даже не могу найти его в объявлении операторов PHP.
Я заметил, что кто-то использует PHP-оператор ===
, от которого я не могу понять. Я пробовал это с функцией, и это соответствует сумасшедшим образом.
Каково определение этого оператора? Я даже не могу найти его в объявлении операторов PHP.
$a === $b (Identical)
TRUE, если
$a
равно$b
, и они одного типа. (введенный в PHP 4)
$a == $b Equal TRUE, если $a равно $b, за исключением (True == -1), который по-прежнему является True.
$a === $b Идентичный TRUE, если $a равно $b, и они одного типа.
> "5" == 5;
True
> "5" === 5;
False
Вы можете прочитать здесь, краткое описание:
$a == $b Равный TRUE, если $a равно $b после манипуляции с типом.
$a === $b Идентичный TRUE, если $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
ИСТИНА, если значение $x и $y одинаково и тип $x и $y одинаковы:
$x = 1; //int type
$y = "1"; //string type
if ($x === $y) {
// This will not execute
}
Вы увидите этот оператор на многих динамически типизированных языках, а не только на PHP.
==
попытается преобразовать все, с чем он имеет дело, в типы, которые он может сравнить.
===
будет строго сравнивать тип и значение.
На любом динамически типизированном языке вы должны быть осторожны с ==, вы можете получить некоторые интересные ошибки.
Тернар ===
менее удобен, но безопаснее. Для сравнений вы всегда должны подумать над тем, должно ли оно быть ===
или ==
Тройка равна знаку === проверок, чтобы увидеть равны ли две переменные и одного типа.
См. Двойной и тройной равный оператор в PHP, который я получил для googling на "PHP three equals operator".
В какой-то момент говорится, что:
Знак double = является сравнением и проверяет, имеет ли переменная/выражение/константа влево то же значение, что и переменная/выражение/константа справа.
Тройка = знак - это сравнение, чтобы увидеть, равны ли две переменные/выражения/константы И имеют один и тот же тип - то есть оба являются строками или оба являются целыми числами.
Он также дает пример, чтобы объяснить это.
Для PHP существует много разных значений, которые может принимать ноль
Итак, === добавлен, чтобы гарантировать, что тип и значение совпадают.
"===", соответствующее значению в переменной, а также тип данных переменной.
Так что, если я отправлю кому-нибудь видео, мне показалось смешным, и они отправили меня. === что это значит???