22

また、関数から返されたときに変数がfalse/であるかどうかを確認する方法も混乱します。null

状態を確認するempty()ためにいつ、いつ使用するのですか?isset()

4

7 に答える 7

14

関数からの戻り値については、どちらissetも使用しませんempty。これらは変数に対してのみ機能し、エラーをトリガーすることなく、存在しない可能性のある変数をテストするためだけに存在するためです。

関数の戻り値の場合、変数の存在をチェックするのは無意味なので、次のようにします。

if (!my_function()) {
    // function returned a falsey value
}

詳細については、The Definitive Guide To PHP's issetAndemptyを参照してください。

于 2012-07-13T05:41:43.167 に答える
10

変数のチェック (いくつかの例)

if(is_null($x) === true) // null
if($x === null) // null
if($x === false)
if(isset($x) === false) // variable undefined or null
if(empty($x) === true) // check if variable is empty (length of 0)
于 2012-07-13T05:42:26.007 に答える
6

Isset() は、変数に ( False 、 0 、または空の文字列) を含む値があるかどうかを確認しますが、NULL は含まれません。var が存在する場合は TRUE を返します。それ以外の場合は FALSE。

一方、 empty() 関数は、変数が空文字列、0、NULL、または False の空の値を持つかどうかをチェックします。var が空でもゼロでもない値を持つ場合、FALSE を返します。

于 2012-07-13T05:40:05.447 に答える
2

isset — 変数が設定されていて NULL でないかどうかを判断する

$a = "test";
$b = "anothertest";

var_dump(isset($a));      // TRUE
var_dump(isset($a, $b)); // TRUE

unset ($a);

var_dump(isset($a));     // FALSE

empty — 変数が空かどうかを判断する

<?php
$var = 0;

// Evaluates to true because $var is empty
if (empty($var)) {
  echo '$var is either 0, empty, or not set at all';
}

// Evaluates as true because $var is set
if (isset($var)) {
  echo '$var is set even though it is empty';
}
?>
于 2012-07-13T05:55:43.700 に答える
2

ISSET変数が設定されているかどうかを確認します。つまり、変数がNULLまたは以外の値であるかどうかを確認しますnot assigned a value。変数が存在し、NULL 以外の値を持つ場合、ISSET は TRUE を返します。これは、" "、0、"0"、または FALSE が割り当てられた変数が設定されていることを意味し、したがって ISSET に対して TRUE になります。

EMPTY変数が空かどうかを調べます。Empty は次のように解釈されます: " " (空の文字列)、0 (整数としての 0)、0.0 (float としての 0)、"0" (文字列としての 0)、NULL、FALSE、array() (空の配列) )、および「$var;」(変数は宣言されていますが、クラスには値がありません。

于 2012-07-13T05:39:33.857 に答える
0
  • false をチェック: if ($v === false)
  • null をチェック: if (is_null($v))

empty() は悪です。遅く、$v がfalse,0,'0',array(),''を呼び出すと、true が返されます。この種のチェックが必要な場合は、if ($ v) .

于 2012-07-13T05:41:14.497 に答える