0

入力フィールドが空であるか値があるかどうかを確認するために、次の両方の方法は同じように機能しますか?それとも、他のものよりも優れているものはありますか?

if ($options['url']) {
    ..
}

または

if ( isset ($options['url']) &&  ($options['url']!="") ) {
    ..
}
4

5 に答える 5

2

を確認せずに、が配列でない場合、またはインデックスが存在しないisset()場合は、少なくとも通知メッセージが表示されます。したがって、使用する必要があります。$optionsurlisset()

あなたも使うことができます

if (! empty($options['url'])) {
    ...
}

Empty()は、偽の値(空の文字列、未定義な​​ど)をチェックします。

于 2012-06-27T10:53:26.280 に答える
1

Issetは、変数がNULLではなく、設定されているかどうかを判別します。

($ options ['url'])変数がtrueを返すかどうかを判断します

于 2012-06-27T10:53:27.117 に答える
1

以下のコードは、キーが存在すると仮定して、値が真であることを確認するだけです。キーが存在しない場合、通知が発行されます。if($ options ['url']){..}

issetキーが存在し、値がnullでないかどうかを通知します。

emptyキーが存在しない場合はfalseを返し、キーが存在するが値が空の場合もfalseを返すため、使用します。

于 2012-06-27T11:01:39.113 に答える
1

いいえ。

$options['url']!=""変数が空かどうかをチェックし、

whileisset($options['url'])は、変数が設定されているかどうか、またはNULLでないかどうかを確認します。

とにかく、存在するかもしれないし存在しないかもしれないisset()変数または配列キーを常に呼び出すことは規則でなければなりません。

または、これらすべての「未定義」の警告が表示されます。

于 2012-06-27T11:03:49.887 に答える
1

以下で十分です。

if (isset($options["url"]) && $options["url"]) {
   // ...
}
  1. isset()、特定のキーが配列に存在するかどうかを確認するために使用されます(また、未定義のインデックス通知を回避するために使用されます)。これは優れたプログラミング手法です。array_key_exist()この場合、この関数を使用することもできますがisset、通常は高速です。

  2. のような式が$options['url']ブールコンテキスト内で使用される場合。その真実性がチェックされます(ブール値への変換のセクションを参照)。このempty()関数は、ほとんどの式で同じ結果を生成します。

于 2012-06-27T11:12:03.937 に答える