Логическое логическое отрицание оператора приоритета и ассоциации

вот мой первый вопрос (и) о StackOverflow, и я думаю, что это так имеет меня уже спрашивали здесь, но все, что я печатаю в строке поиска, вызывает у меня разные вопросы. (Или иногда «нет» результатов вообще!)

Я учусь на w3Schools, но я увидел этот, казалось бы, простой фрагмент кода, который всколыхнул небольшой пакет вопросов:

По сути код говорит:

if(! test === FALSE)
display("test successful!");
else
display("test failed...")

«тестовое задание«в этом конкретном случае возвращает строку в случае успеха или (булево) ЛОЖНЫЙ при неудаче.

Вот вопросы, которые волновали меня.

  1. Что касается восклицательного знака (он же «Логическое НЕ» или «Оператор отрицания») в начале условного оператора / if, то это:

    А) Применимо ко всему утверждению в скобках? Или

    Б) Связано только с «тестом»?

Примечание: ассоциативность оператора отрицания может не изменить результат в этом случае, но его ассоциативность будет иметь значение в случае, подобном: (! FALSE || TRUE), да?

  1. Я понимаю, как оператор отрицания работает с логическими значениями, но как ведет себя оператор отрицания, когда сталкивается со строкой (PHP)?

    A) Изменится ли поведение оператора отрицания, если строка окажется чем-то хитрым, например, «true» или «0»?

  2. Является (! test === FALSE) такой же как (тест! == ЛОЖЬ)? Почему они просто не использовали «! ==»?

ВОТ фактический код, о котором идет речь:

if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
echo("$email is a valid email address");
} else {
echo("$email is not a valid email address");
}

Дальнейший вопрос PHP: Есть ли какое-то преимущество в использовании filter_var () над filter_input () в этом случае? Почему w3Schools использует filter_var (), а не filter_input ()?

2

Решение

  1. Как вы можете видеть в доктор Операторы в PHP имеют разные приоритеты. Это значит:! применительно к $test первый.

  2. Согласно доктор, пустой строки '' или же '0' будет преобразован в false, иначе true,

  3. Это не то же самое. когда $test равно пустой строке '' или же '0' эти два условия имеют разное поведение.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]