Восклицательный знак перед переменной-требуется уточнение

Я работаю с PHP уже довольно давно, но для меня это всегда было загадкой, правильное использование восклицательного знака (отрицательного знака) перед переменными.

что значит !$var указать? Это ВАР false, пустой, не установленный etc.?

вот несколько примеров, которые мне нужно изучить...

Пример 1:

$string = 'hello';
$hello = (!empty($string)) ? $string : '';

if (!$hello)
{
    die('Variable hello is empty');
}

этот пример действителен? Будет ли оператор if действительно работать, если $string был пусто?

Пример 2:

$int = 5;
$count = (!empty($int)) ? $int : 0;

// Note the positive check here
if ($count)
{
   die('Variable count was not empty');
}

будет ли этот пример действительным?

Я никогда не использую ни один из приведенных выше примеров, я ограничиваю эти if ($var) к переменным, которые имеют только логические значения. Мне просто нужно знать, действительны ли эти примеры, чтобы я мог расширить использование if ($var) заявления. Они выглядят очень чистыми.

спасибо.

4 ответов


if(! $a) Это то же самое, что if($a == false). Кроме того, следует учитывать, что преобразование типов происходит при использовании == оператора.
Для получения более подробной информации ознакомьтесь с разделом " свободные сравнения с=="здесь. Отсюда следует, что для строк "0" и "" равны FALSE ( "0"==false верно и ""==false тоже верно).

относительно опубликованных примеров:
Пример 1
Это сработает, но вы должны отметить, что оба " 0" и "" это "пустые" строки.

Пример 2
Это сработает


на ! перечеркивает. истина становится ложью, и все, что оценивается как ложное, становится истиной.

Если вы пишете PHP, и вы не знаете всех операторов наизусть.. вы не должны писать ни одной строки кода, пока не узнаете их наизусть:

http://php.net/manual/en/language.operators.php

Это абсолютные основы.


это логический тестер. Пусто или ложно.


Это not логический оператор, см. руководство по PHP для более подробной информации.