Вопрос по boolean, function, php – Что в действительности означает восклицательный знак перед функцией в PHP

3

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


Например, следующее утверждение:

<code>if (!stripos($haystack, $needle)) {}
</code>

так же, как это:

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

или это:

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


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

@Radu Возможно, мой вопрос не был достаточно ясен, но я спрашивал, есть ли! перед тем, как функция проверяет типы или нет. n1te
Это означает, что если оно не равно или результат ложен. это короткий метод написания кода Muhammad Raheel

Ваш Ответ

2   ответа
14

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

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

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

Это называетсяnegation unary operator, Этоflips логическое значение (приведение к логическому, если необходимо) значения.

Например...

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

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

@Pacerier Это говоритTRUE if $a is not TRUE.
Спасибо, это то разъяснение, которое я искал n1te
@alex, почему"is not TRUE" задействовать принуждение? Isn & APOS; т"is not TRUE" просто!== ?
@alex, как ты узнал, что в случае необходимости можно привести логическое значение? Имеют ли в виду документы об этом?php.net/manual/en/language.operators.logical.php
0

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

Ваш ответ был хорошим, но ответ Алекса был для меня легче понять. Btw. Это не я проголосовал за тебя. n1te
.. И спасибо за оценку. Я здесь пытаюсь помочь. Разве мой ответ не имеет смысла для вас?
Нет, я комментировал другой комментарий, извините. он удалил после того, как я написал это.

Похожие вопросы