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