web-dev-qa-db-ja.com

PHP FalseまたはNullかどうかを確認

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

Empty()を使用する場合とisset()を使用して条件を確認する場合

16
Harsha M V

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

関数の戻り値の場合、変数の存在を確認することは無意味なので、次のようにします。

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

これについてさらに詳しく読むには、 PHPのissetと空の決定的なガイド を参照してください。

11
deceze

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

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を返します。

5
Rupesh Pawar

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';
}
?>
1
Naren Karthik
  • falseをチェック:if($ v === false)
  • nullをチェック:if(is_null($ v))

empty()は悪です。低速で、$ vがQUEAL false、0、 '0'、array()、 ''の場合、trueを返します。この種のチェックが必要な場合、if($ v)を使用できます。

0
Allen