Я уже давно работаю с PHP, но для меня это всегда было загадкой, правильное использование восклицательного знака (отрицательного знака) перед переменными.
Что такое !$var
? Является ли var false
, пустым, не установленным и т. Д.?
Вот несколько примеров, которые мне нужно изучить …
Пример 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)
. Они выглядят очень чистыми.
Благодарю.
if(! $a)
совпадает с if($a == false)
. Кроме того, следует учитывать, что преобразование типов происходит при использовании оператора ==
.
Для более подробной информации ознакомьтесь с разделом «Свободные сравнения с ==» здесь . Отсюда следует, что для строк «0» и «» равны FALSE ( "0"==false
TRUE, а ""==false
ИСТИНА).
Что касается опубликованных примеров:
Пример 1
Он будет работать, но вы должны отметить, что и «0», и «» являются «пустыми» строками.
Пример 2.
Это будет работать
!
сводит на нет. true становится ложным, и все, что оценивается как false, становится истинным.
Если вы пишете PHP, и вы не знаете всех операторов наизусть. Вам не следует писать одну строку кода, пока вы не узнаете их наизусть:
http://php.net/manual/en/language.operators.php
Это абсолютные основы.
Это логический тестер. Пустой или ложный.
Это not
логический оператор, см. Руководство по PHP для более подробной информации.