В PHP, когда вы должны использовать isset? - PullRequest
1 голос
/ 05 мая 2011

Когда следует использовать:

if (//following code

  1. !isset($foo)

  2. !($foo)

  3. $foo == "" )

Ответы [ 7 ]

10 голосов
/ 05 мая 2011

Если вы не используете isset и тестируемая переменная не определена, вы получите предупреждение. Кроме того, есть разница между чем-то, что никогда не устанавливалось вообще, и заданием пустой строки, false, null или 0. Предположим, вы проверяете ключ массива, и вы просто хотите знать, было ли оно создано или нет - и не заботится о значении - if (! $ a ['key']) вернет false, если ключ был 0, нулевым или пустым.

Если вы знаете, что переменная будет определена, и тест должен знать только, является ли переменная не ложной - то есть 0, '', нулевой или ложной - тогда вы можете обойти isset.

1 голос
/ 05 мая 2011
  1. Когда вы хотите проверить, существует ли $foo, но не заботитесь о его значении.
  2. Когда вы знаете, $foo существует и хотите убедиться, что оно оценивается как false.
  3. Никогда, вместо этого вы должны использовать trim и empty или strlen .
0 голосов
/ 09 мая 2011

Если вы не хотите специально проверять, установлена ​​ли переменная (содержит ли она что-то или нет),! Empty () всегда лучше использовать, чем isset.

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

1: любое значение переменной $ foo установлено

function test($param = NULL){
  if(isset($param)){
    ....
  }
}

2: проверка на булево значение true / false (также проверяет на пустую строку)

3: проверить наличие пустой строки.

if(trim($_POST['name']) == ""){
   // throw error
}

Не удивительные примеры, которые я знаю, но надеюсь, что они донесут информацию.

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

В условиях для оператора if, isset должен идти первым, если вам нужно проверить, существует ли переменная.Вы также можете использовать empty в некоторых случаях, например, когда вы хотите проверить, является ли оно неопределенным или практически равным нулю.

Использование isset полезно для предотвращения предупреждений в строгом режиме.

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

isset проверяет, был ли для переменной или индекса массива задано значение, отличное от нуля.

isset ($ var) === false

$ var = null; isset ($ var) === false

$ var = 1; isset ($ var) === true

$ var = ''; isset ($ var) === true

// То же самое относится к массивам $ array = array (); isset ($ array) === правда isset ($ array [0]) === false

0 голосов
/ 05 мая 2011
...