2013-06-10 3 views
1

Может быть, это глупый вопрос, но я не могу найти прямой ответ.Пусто, isset, и! = ""

Есть $id != "" так же, как !empty($id)?

Также правильно ли использовать if(isset($id) && !empty($id)), чтобы определить, установлена ​​ли переменная и не пуста/нет?

+0

http://nz1.php.net/manual/en/types.comparisons.php –

ответ

2

Нитт: в двух словах,

if($var) означает, что если $var есть, или имеет значение ИСТИНА,

на противоположной стороны, if(!$var) означает, что если $var имеет значение FALSE

if(empty($var)) и if(!empty($var)) так же пытаются проверить, если $var имеет какое-либо значение вообще, или они пусты.

$var = ''; // false 
$var = '1' // true 
$var; // empty 
$var = '1' // not empty 

Для более, на голову в PHP Manual

Некоторые примеры включают в себя:

<?php 
var_dump((bool) "");  // bool(false) 
var_dump((bool) 1);   // bool(true) 
var_dump((bool) -2);  // bool(true) 
var_dump((bool) "foo");  // bool(true) 
var_dump((bool) 2.3e5);  // bool(true) 
var_dump((bool) array(12)); // bool(true) 
var_dump((bool) array()); // bool(false) 
var_dump((bool) "false"); // bool(true) 
?> 
1

empty будет просто возвращать true для неопределенных переменных, поэтому нет необходимости дважды проверять его.

Просто используйте if (! empty($id))

+0

Я читаю, что пустой уже выполняет isset? – Alex

+2

@Alex - Точно. Поэтому вам не нужно снова проверять его. [RTFM] (http://php.net/manual/en/function.empty.php). –

6

No. empty() охватывает множество других условий, кроме пустой строки. http://php.net/manual/en/function.empty.php Из документации:

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

Кроме того, если вы хотите сказать, если переменная «пустой», то просто empty() нужен. Не нужно также isset().

+0

+1 для добавления кодовых меток вокруг каждого условия. –

+0

+1 для справки. – Kevin

0

Во-первых, нет $id != "" - это не то же самое, что и !empty($id). Разница заключается в том, что если $ id не задан, первый пример будет вызывать уведомление о том, что вы используете неопределенную переменную, а вторая - не указана.

Во-вторых, это правильно, если вы используете как isset(), так и empty(), но это избыточно, поскольку пустое не будет выдавать уведомление, если переменная не определена.

Надеюсь, что это было полезно для вас!

Удачи и счастливого кодирования: P

1

Is $ ID = "" такой же, как пустой ($ ID)!?

No, empty тесты для всех форм пустоты. Таким образом, он также активируется на 0 или null. Сравнение с пустой строкой с использованием != будет выполнять сравнение, основанное на преобразовании строки $id.

Также это правильно использовать, если (Исеть ($ ID) & &! Пусто ($ ID)), чтобы определить, является ли переменная задана и не пуста/нуль?

Не совсем, это условие просто проверяет, является ли $id еще набор не содержит пустую строку или строку "0" или целое число/всплывает 0 значения, или что-нибудь, что бы преобразовать в целое 0, такие как логическое false ,

Приведенный список содержит исчерпывающий список over on PHP.net с указанными ниже значениями empty.

Смежные вопросы