определить пустую переменную? - PullRequest
2 голосов
/ 09 мая 2011

предположим

$test = '';

if(empty($test)){ $test = "not found";}

echo $test;

в приведенном выше случае ответ будет "не найден"

но ниже единицы, хотя переменная $test пуста, но результат ничего не дает.

$test = ' ';

if(empty($test)){ $test = "not found";}

echo $test;

как мы можем рассматривать обе эти переменные как пустые в PHP ??

Ответы [ 5 ]

6 голосов
/ 09 мая 2011

$test = ' ' не пусто. Из подробностей документации :

Следующие вещи считаются быть пустым:

  • "" (пустая строка)
  • 0 (0 в виде целого числа)
  • 0,0 (0 в виде числа с плавающей запятой)
  • "0" (0 в виде строки)
  • NULL
  • FALSE
  • array () (пустой массив)
  • var $ var; (объявленная переменная, но без значения в классе)

Если вы хотите проверить, является ли $test только пробелами, посмотрите следующие вопросы:

Если строка содержит только пробелы?
Как проверить, есть ли в PHP только пробелы в строке?

5 голосов
/ 09 мая 2011

Обрезать значение перед проверкой.

Важно обрезать перед проверкой, потому что empty проверяет только переменные, а не значение, которое вы передаете.

$test = trim(' ');

if (empty($test)) { /* ... */ }

echo $test;
1 голос
/ 10 мая 2011

Я понятия не имею, почему все рекомендуют empty здесь. Тогда вы могли бы просто пропустить это и использовать обработку логического контекста PHP:

if (!trim($test)) {

Но для фактической проверки наличия любого содержимого строки используйте:

if (!strlen(trim($test))) {
1 голос
/ 09 мая 2011

Вы можете сделать if (empty(trim($test))) ...

ИСПРАВЛЕНО:

$test = trim($test);

if (empty($test)) ...

Обрезка удаляет пробелыс обеих сторон струны.

0 голосов
/ 09 мая 2011

Создайте свою собственную функцию для проверки этого:

function my_empty($str) {
  $str = trim($str);
  return empty($str);
}

Это будет обрабатывать все строки, содержащие только пробелы, как пустые, в дополнение к тому, что пустой метод уже предоставляет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...