PHP 言語を学習することで、PHP 言語が関数ベースの HTML スクリプト言語であることを理解する必要があります。巨大な関数ライブラリが PHP 言語関数の実装をサポートします。以下では、PHP 関数 isset() と empty() の関連した使用法を紹介します。
PHP の isset() 関数は、通常、変数が設定されているかどうかを検出するために使用されます
形式: bool isset (mixed var [,mixed var [, ...]])
関数: 変数が設定されているかどうかを検出します
戻り値:
変数が存在しない場合はFALSEを返す
変数が存在しその値がNULLの場合もFALSEを返す
変数が存在しその値がNULLでない場合はTRUEを返す
複数チェックする場合同時に変数を取得すると、それぞれの項目は前の項目と一致します。要求された場合にのみ TRUE を返します。それ以外の場合、結果は FALSE になります
バージョン: PHP 3、PHP 4、PHP 5
詳細な説明:
unset() を使用して変数を解放した後、変数を変更すると、isset() ではなくなります。
PHP 関数 isset() は変数にのみ使用でき、他のパラメータを渡すと解析エラーが発生します。
定数が設定されているかどうかを検出するには、define() 関数を使用します。
PHPのempty()関数は値が空かどうかを判定します
形式: bool empty (mixed var)
関数: 変数が空かどうかを確認します
戻り値:
変数が存在しない場合はTRUEを返します
If 変数が存在し、その値が ""、0、"0"、NULL、FALSE、array()、var $var; の場合、変数が存在し、その値が である場合、TRUE が返されます。 ""、0 、"0"、NULL、FALSE、array()、var $var; および属性のないオブジェクトでは FALSE を返します
バージョン: PHP 3、PHP 4、PHP 5
empty() は変数にのみ使用できます。他のパラメータを渡すと Paser エラーが発生し、操作が終了します。
定数が設定されているかどうかを検出するには、define() 関数を使用します。
<?php $var = 0; // 结果为 true,因为 $var 为空 if (empty($var)) { echo '$var is either 0 or not set at all'; } // 结果为 false,因为 $var 已设置 if (!isset($var)) { echo '$var is not set at all'; } ?>
注: これは関数ではなく言語構造であるため、変数関数から呼び出すことはできません。
注: empty() は変数のみを検出します。変数ではないものを検出すると解析エラーが発生します。つまり、次のステートメントは機能しません: empty(addslashes($name))。以下は、私たちがテストした isset 関数と empty 関数の詳細な例のコードです。これを読んだ後は、基本的に同じです:
<?php error_reporting(E_ALL); echo '<B>未定义$var</b><Br>'; echo "isset测试:<Br>"; if ( isset ( $var )) { echo '变量$var存在!<Br>' ; } echo "empty测试:<Br>"; if ( empty ( $var )){ echo '变量$var的值为空<Br>'; } else { echo '变量$var的值不为空<Br>'; } echo "变量直接测试:<Br>"; if ( $var ){ echo '变量$var存在!<Br>'; } else { echo '变量$var不存在!<Br>'; } echo '----------------------------------<br>'; echo '<B>$var = \'\'</b><Br>'; echo "isset测试:<Br>"; $var = ''; if ( isset ( $var )) { echo '变量$var存在!<Br>' ; } echo "empty测试:<Br>"; if ( empty ( $var )){ echo '变量$var的值为空<Br>'; } else { echo '变量$var的值不为空<Br>'; } echo "变量直接测试:<Br>"; if ( $var ){ echo '变量$var存在!<Br>'; } else { echo '变量$var不存在!<Br>'; } echo '----------------------------------<br>'; echo '<B>$var = 0</b><Br>'; echo 'isset测试:<Br>'; $var = 0 ; if ( isset ( $var )) { echo '变量$var存在!<Br>' ; } echo "empty测试:<Br>"; if ( empty ( $var )){ echo '变量$var的值为空<Br>'; } else { echo '变量$var的值不为空<Br>'; } echo "变量直接测试:<Br>"; if ( $var ){ echo '变量$var存在!<Br>'; } else { echo '变量$var不存在!<Br>'; } echo '----------------------------------<br>'; echo '<B>$var = null</b><Br>'; echo 'isset测试:<Br>'; $var = null ; if ( isset ( $var )) { echo '变量$var存在!<Br>' ; } echo "empty测试:<Br>"; if ( empty ( $var )){ echo '变量$var的值为空<Br>'; } else { echo '变量$var的值不为空<Br>'; } echo "变量直接测试:<Br>"; if ( $var ){ echo '变量$var存在!<Br>'; } else { echo '变量$var不存在!<Br>'; } echo '----------------------------------<br>'; echo '<B>$var ="php"</b><Br>'; echo 'isset测试:<Br>'; $var = "php"; if ( isset ( $var )) { echo '变量$var存在!<Br>' ; } echo "empty测试:<Br>"; if ( empty ( $var )){ echo '变量$var的值为空<Br>'; } else { echo '变量$var的值不为空<Br>'; } echo "变量直接测试:<Br>"; if ( $var ){ echo '变量$var存在!<Br>'; } else { echo '变量$var不存在!<Br>'; } ?>
$id=0; empty($id)?print "It's empty .":print "It's $id ."; //结果:It's empty . print "<br>"; !isset($id)?print "It's empty .":print "It's $id ."; //结果:It's 0 .
これは、変数処理関数を使用するとき、変数の値が 0 である可能性がある場合に、empty() を使用するときに注意することを意味します。現時点では isset に置き換える方が賢明です。
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(empty($id)) $id=1; print $id; // 得到 1 if(!isset($id)) $id=1; print $id; //得到 0
マニュアルでの empty() の説明は次のとおりです:
説明 bool empty(mixed var)
var が空でない場合またはゼロ以外の値の場合、empty() は FALSE を返します。つまり、""、0、"0"、NULL、FALSE、array()、var $var;、およびプロパティを持たないオブジェクトは空とみなされ、var が空の場合は TRUE が返されます。
マニュアルのisset()の説明は以下の通りです:
isset()は変数が設定されているかどうかを検出します
説明 bool isset (mixed var [,mixed var [, ...]] )
Returns var が存在する場合は TRUE、それ以外の場合は FALSE を返します。
unset() を使用して変数が解放された場合、それは isset() ではなくなります。 isset() を使用して NULL に設定された変数をテストすると、FALSE が返されます。また、NULL バイト (「?」) は PHP の NULL 定数と同等ではないことに注意してください。
警告: isset() は変数でのみ使用できます。他のパラメータを渡すと解析エラーが発生するためです。定数が設定されているかどうかを確認したい場合は、define()関数を使用できます。
変数が宣言されているかどうかを判定したい場合はisset関数が使えます
変数にデータが代入されていて空ではないかを判定したい場合はempty関数が使えます
以下のような場合に変数が存在するか空でないかにかかわらず、最初に isset 関数を使用し、次に empty 関数を使用します