Что означает восклицательный знак перед тем, как функция на самом деле означает PHP?

Как и в названии, что означает восклицательный знак перед функцией в PHP?

Например, следующий оператор:

if (!stripos($haystack, $needle)) {} 

то же самое:

if (stripos($haystack, $needle) === FALSE) {}

или это:

if (stripos($haystack, $needle) == FALSE) {}

Любые разъяснения будут оценены

Solutions Collecting From Web of "Что означает восклицательный знак перед тем, как функция на самом деле означает PHP?"

! предшествующая функции такая же, как …

 if (stripos($haystack, $needle) == FALSE) {} 

Это то же самое, потому что это сравнение == которое не проверяет типы.

Он называется унарным оператором отрицания . Он переворачивает логическое значение (при необходимости, до значения Boolean) значения.

Например…

 ! 0; // True ! 1 ; // False ! ''; // True ! true; // False !! 0 // False 

!! трюк удобен на языках без (bool) . Перевернув значение дважды, вы получите Boolean версию своего первоначального значения.

! будет работать над сравнением значений, так что это то же самое, что и второе сравнение. потому как ! будут ломать false, 0, null как false, и они не совпадают с типами, которые вы видите. "" может быть исключением для этого, потому что я всегда использую trim ()! = "" для сравнения строк. Я не знаю об этом.