PHP では、変数が空かどうかを判断する方法がたくさんあります。PHP には、変数を判断するための empty、isset、var == null、is_null などの関数が用意されています。
empty() と isset() の簡単な比較。
コードは次のとおりです |
コードをコピー |
$var = 0 // $var が空であるため、結果は true になります ;
// $var =0 なので、結果は true
If (empty($var)) { echo '$var は 0 か、まったく設定されていません' }
// $var が設定されているため、結果は false になります
If (!isset($var)) { echo '$var がまったく設定されていません' }
?>
|
上記の empty および isset によって属性がないと判断されたオブジェクトは、空とみなされます。
var == null
関数: 変数が「空」かどうかを判断します
注: 値が 0 または false または空の文字列 "" または null である変数および空の配列は null と判断されます
注: empty との大きな違いは、変数が初期化されていない場合、var == null はエラーを報告することです。
コードは次のとおりです
| コードをコピー
|
$a = 0;
$b = 配列();
if ($a == null) echo '$a は空です' . "";
if ($b == null) echo '$b は空です' . "";
if ($c == null) echo '$b は空です' . "";
// 結果を として表示します
// $a は空です
// $b は空です
// 未定義変数: c
|
is_null
コードは次のとおりです
| コードをコピー
|
$a = null;
$b = false;
if (is_null($a)) echo '$a は NULL' です。
if (is_null($b)) echo '$b は NULL' です。
if (is_null($c)) echo '$c は NULL' です。
// 結果を として表示します
// $a は NULL です
// 未定義変数: c
変数==0 または 変数==0
例 |
コードは次のとおりです
コードをコピー
|
| $a ===0 $a ===""
$a ==0 は $a == "" と同じです
| PHP URLでパラメータを渡すとき
PHP ページの URL 末尾パラメーターが id=0 で表示される場合 (例: test.php?id=0)、以下を比較してみてください:
コードは次のとおりです
コードをコピー
|
| if(empty($id)) $id=1; // id=0 の場合、id も 1 になります
if(!isset($id)) $id=1; // id=0 の場合、id は 1 になりません
上記の推論は、次のコードを個別に実行することで検出できます:
if(空($id)) $id=1;
$id を出力します // 1 を取得します
if(!isset($id)) $id=1;
$id を出力します //0 を取得します
概要
NULL と空は、php における 2 つの異なる概念です
isset は主に変数が初期化されているかどうかを判断するために使用されます
emptyは「false」、「empty」、「0」、「NULL」、「未初期化」の値を持つ変数をTRUEと判定します
is_null は、値が「NULL」の変数のみを TRUE として決定します
var == null 値が「false」、「empty」、「0」、「NULL」の変数をTRUEと判定します
var === null 値が「NULL」の変数のみがTRUEと判定されます
PHP変数判定を使用する可能性のあるその他の関数
isset($ var): //変数が宣言されているかどうか
empty($ var): //変数は空ですか?
define($ var): //定数は定義されていますか?
is_array($ var): //測定された変数が配列かどうかを確認します
is_null($ var): //測定された変数がnullかどうかを確認します
|
http://www.bkjia.com/PHPjc/628876.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/628876.html技術記事 PHP では、変数が空かどうかを判断する方法がたくさんあります。PHP には、変数を判断するための empty、isset、var == null、is_null などの関数が用意されています。