-1

isset()空の変数以外に、またはempty()空の変数をテストするためのより良い方法はありますか?

4

2 に答える 2

4

それは文脈に依存します。

isset()NULL変数の値がそうでない場合(したがって、変数が少なくとも定義されている場合) にのみ true を返します。

empty()は、変数の値が「空の」値であると見なされる場合に true を返します。通常、これは0"0"NULL、(空の配列) および(空の文字列)FALSEを意味し、それ以外はすべて空ではありません。array()""

いくつかの例

FALSE == isset($foo);
TRUE == empty($foo);
$foo = NULL;
FALSE == isset($foo);
TRUE == empty($foo);
$foo = 0;
TRUE == isset($foo);
TRUE == empty($foo);
$foo = 1;
TRUE == isset($foo);
FALSE == empty($foo);
于 2010-04-07T04:18:39.570 に答える
2

ただし、PHP で得られる奇妙な == の結果に注意してください。期待する結果を得るには === を使用する必要があるかもしれません。

if (0 == '') {
  echo "weird, huh?\n";
}

if  (0 === '') {
  echo "weird, huh?\n";
} else {
  echo "that makes more sense\n";
}

0 は偽であり、空の文字列は偽であるため、0 == '' は真である FALSE == FALSE と同じです。=== を使用すると、PHP も型をチェックするようになります。

于 2010-04-07T05:03:34.980 に答える