Я согласен с Шоном, но я объясню, что каждый из них делает на простом английском языке:
if ($variable != NULL) {
$variable
будет NULL
, если он не был установлен. Это практически то же самое, что и isset
, и то же самое, что переменная не определена.
if (!empty($variable)) {
Как правило, это проверяет, имеет ли $variable
в виде строки ((string) $variable
) strlen
значение 0. Однако true
заставит его вернуть false
, как и целые числа, отличные от 0, и пустые массивы. По какой-то причине (которую я считаю ошибочной) $variable = '0';
вернет true
.
if ($variable) {
Эта проверка истинности/ложности действует как (boolean) $variable
- в основном, возвращает ли переменная истину при преобразовании в логическое значение.
Один из способов думать об этом состоит в том, что он действует так же, как и пустой, за исключением того, что возвращает противоположное значение.
Для получения дополнительной информации о том, что я имею в виду под (boolean) $variable
(приведение типов/жонглирование), см. этот страница руководства.
(Разработчики PHP: это в основном по памяти, если я ошибаюсь, поправьте меня!)
person
Ross
schedule
05.01.2009