isset()
空の変数以外に、またはempty()
空の変数をテストするためのより良い方法はありますか?
質問する
182 次
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 に答える