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

Я уже давно работаю с 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 для более подробной информации.