Как и в названии, что означает восклицательный знак перед функцией в PHP?
Например, следующий оператор:
if (!stripos($haystack, $needle)) {}
то же самое:
if (stripos($haystack, $needle) === FALSE) {}
или это:
if (stripos($haystack, $needle) == FALSE) {}
Любые разъяснения будут оценены
!
предшествующая функции такая же, как …
if (stripos($haystack, $needle) == FALSE) {}
Это то же самое, потому что это сравнение ==
которое не проверяет типы.
Он называется унарным оператором отрицания . Он переворачивает логическое значение (при необходимости, до значения Boolean) значения.
Например…
! 0; // True ! 1 ; // False ! ''; // True ! true; // False !! 0 // False
!!
трюк удобен на языках без (bool)
. Перевернув значение дважды, вы получите Boolean версию своего первоначального значения.
! будет работать над сравнением значений, так что это то же самое, что и второе сравнение. потому как ! будут ломать false, 0, null как false, и они не совпадают с типами, которые вы видите. "" может быть исключением для этого, потому что я всегда использую trim ()! = "" для сравнения строк. Я не знаю об этом.