Це залежить від того, що ви шукаєте, якщо ви просто дивитесь, щоб побачити, чи він порожній, просто використовуйте, emptyяк він перевіряє, чи встановлено він також, якщо ви хочете знати, чи щось встановлено чи не використовується isset.
Empty перевіряє, чи встановлена змінна, і якщо вона є, вона перевіряє її на null, "", 0 тощо
Isset просто перевіряє, чи встановлено це, може бути нічого недійсного
З empty, такі речі вважаються порожніми:
- "" (порожній рядок)
- 0 (0 як ціле число)
- 0,0 (0 як поплавок)
- "0" (0 як рядок)
- НУЛЬ
- ПОМИЛКОВИЙ
- array () (порожній масив)
- var $ var; (змінна оголошена, але без значення в класі)
З http://php.net/manual/en/function.empty.php
Як зазначено в коментарях, відсутність попередження також важлива при порожньому ()
PHP керівництво говорить
empty () - протилежний (boolean) var, за винятком того, що попередження не створюється, коли змінна не встановлена .
Що стосується набору
PHP керівництво говорить
isset () поверне FALSE, якщо тестує змінну, встановлену на NULL
Ваш код буде добре, як:
<?php
$var = '23';
if (!empty($var)){
echo 'not empty';
}else{
echo 'is not set or empty';
}
?>
Наприклад:
$var = "";
if(empty($var)) // true because "" is considered empty
{...}
if(isset($var)) //true because var is set
{...}
if(empty($otherVar)) //true because $otherVar is null
{...}
if(isset($otherVar)) //false because $otherVar is not set
{...}