また、関数から返されたときに変数がfalse/nullであるかどうかを確認する方法もわかりません。
Empty()を使用する場合とisset()を使用して条件を確認する場合
関数からの戻りについては、isset
もempty
も使用しません。これらは変数でのみ機能し、存在しない可能性のある変数をテストするためにエラーをトリガーすることなく単に存在するためです。
関数の戻り値の場合、変数の存在を確認することは無意味なので、次のようにします。
if (!my_function()) {
// function returned a falsey value
}
これについてさらに詳しく読むには、 PHPのissetと空の決定的なガイド を参照してください。
変数のチェック(いくつかの例)
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)
Isset()は、変数に(False、0、または空の文字列)を含む値があるかどうかをチェックしますが、NULLではありません。 varが存在する場合はTRUEを返します。それ以外の場合はFALSE。
一方、empty()関数は、変数に空の値empty string、0、NULL、またはFalseがあるかどうかをチェックします。 varに空ではなく、ゼロ以外の値がある場合は、FALSEを返します。
ISSET
は、変数が設定されているかどうかを確認します。つまり、変数がNULL
またはnot assigned a value
以外の値かどうかを確認します。変数が存在し、値がNULL以外の場合、ISSETはTRUEを返します。これは、 ""、0、 "0"、またはFALSEが割り当てられた変数が設定されているため、ISSETに対してTRUEであることを意味します。
EMPTY
は、変数が空かどうかを確認します。空は次のように解釈されます: ""(空の文字列)、0(整数として0)、0.0(浮動小数点として0)、 "0"(文字列として0)、NULL、FALSE、array()(空の配列)、および「$ var;」 (宣言された変数ですが、クラスに値がありません。
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';
}
?>
empty()は悪です。低速で、$ vがQUEAL false、0、 '0'、array()、 ''の場合、trueを返します。この種のチェックが必要な場合、if($ v)を使用できます。