Восклицательный знак перед переменной-требуется уточнение
Я работаю с 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 для более подробной информации.