ホームページ  >  記事  >  バックエンド開発  >  PHP isset() と empty() の違いの詳しい説明_PHP チュートリアル

PHP isset() と empty() の違いの詳しい説明_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:34:13812ブラウズ

PHP の isset() 関数は、通常、変数が設定されているかどうかを検出するために使用されます
形式: bool isset (mixed var [,mixed var [, ...]])

関数: 変数が設定されているかどうかを検出します

Return value:

変数が存在しない場合は 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を返します
変数が存在し、その値が ""、0、"0"、NULL、FALSE、array()、var $var; および属性のないオブジェクトの場合、TRUE が返されます
変数が存在し、その値が存在しない場合""、0、"0"、NULL、FALSE、array()、var $var; および属性のないオブジェクトは FALSE を返します
バージョン: PHP 3、PHP 4、PHP 5
その他の命令:
empty() value =!(boolean) var ですが、変数が未定義であるため、警告メッセージは生成されません。詳細については、「ブール値への変換」を参照してください。
empty() は変数にのみ使用できます。他のパラメータを渡すと Paser エラーが発生し、操作が終了します。
定数が設定されているかどうかを検出するには、define() 関数を使用します。
例: empty() と isset() の単純な比較

コードをコピー コードは次のとおりです:

$var = 0;
// $ であるため、結果は true になります。 var は空です
if (empty($var)) {
echo '$var は 0 か、まったく設定されていません';
}
// $var が設定されているため、結果は false になります
if (!isset($ var)) {
echo '$var is not set at all';
?>

注: これは関数ではなく言語構造であるため、変数関数から呼び出すことはできません。
注: empty() は変数のみを検出します。変数ではないものを検出すると解析エラーが発生します。つまり、次のステートメントは機能しません: empty(addslashes($name))。
以下は、Script House によってテストされた isset 関数と empty 関数の詳細な例のコードです。これを読んだ後は、基本的に同じです:

コードをコピーします コードは次のとおりです。

error_reporting(E_ALL);
echo '未定義 $var
'
echo "isset test:
"; var ))
{
echo '変数 $var が存在します!

}
if ( empty ( $var )){
echo 'の値は空です
';
}
else
{
echo '変数 $var の値は空ではありません
';
}
echo "変数の直接テスト:
"; $var ){
echo '変数 $var は存在しません!
';
}
else {
echo '変数 $var は存在しません!
'
}
echo '------ ----------------------------
';
echo '$var = ''';
echo "isset test:
";
if (isset ( $var ))
{
echo '変数 $var が存在します!
' ;
}
echo "空のテスト:
";
if ( empty ( $var )){
echo '変数 $var の値が空です'
}
else
{
echo '変数 $var の値が空ではありません
';
}
echo "変数直接テスト:
";
if ( $var ){
echo '変数 $var が存在します!
';
}
else {
echo '変数 $var が存在しません!
'
}
echo '---------------------- --------
';
echo '$var = 0
';
echo 'isset test:
'; var = 0;
if ( isset ( $var ))
{
echo '変数 $var が存在します!
' ;
echo "空のテスト:
"; )){
echo '変数 $var の値が空です
';
}
else
{
echo '変数 $var の値が空ではありません
';
echo "変数の直接テスト:
";
if ( $var ){
echo '変数 $var が存在します!
';
}
else {
echo '変数 $var が存在しません!
' ;
}
エコー '---------------------------------
'
エコー '< ;B> $var = null

';
$var = null ;
if ( isset ( $var ))
echo ' $var が存在します !
' ;
}
echo "empty test:
";
if ( empty ( $var )){
echo '変数 $var の値が空です
';
}
else
{
echo '変数 $var の値が空ではありません
';
}
echo "変数の直接テスト:
";
echo '変数 $ var が存在します!
';
else {
echo '変数 $var が存在しません!
'
}
echo '--------------- --- ---------------
';

echo '$var ="php"
'; echo 'isset テスト:
';
$var = "php";
if (isset ( $var ))
echo '変数 $var が存在します!
' ;空のテスト:
";
if ( empty ( $var )){
echo '変数 $var の値は空です
';
}
else
{
echo '変数 $var の値は空ではありません
';
}
echo "変数の直接テスト:
";
if ( $var ){
echo '変数 $var が存在します!
';
else {
echo '変数 $var が存在しません!
';
}
?>



PHP でページ プログラムを作成するとき、PHP の最後に変数値があるかどうかを判断するために変数処理関数をよく使用します。ページが空です。 Start empty() 関数の使用に慣れていましたが、いくつか問題が見つかったので、isset() 関数に切り替えたところ、問題はなくなりました。
名前が示すように、empty() は変数が「空」かどうかを判断し、isset() は変数が設定されているかどうかを判断します。いわゆる「名前のとおり」ということで、最初に少し回り道をしました。変数の値が 0 の場合、empty() も真 (True) になるため、いくつかの事故が発生します。 empty() と isset() は両方とも変数処理関数であり、両方とも変数が設定されているかどうかを判断するために使用されますが、いくつかの違いがあることがわかりました。empty は変数が空かゼロかどうかも検出します。変数値が 0 の場合、empty() は変数が空であることと同等、つまり設定されていないことと同等であるとみなします。
たとえば、$id 変数を検出するには、$id=0 の場合、empty() と isset() を使用して、変数 $id が設定されているかどうかを検出します。両方とも異なる値を返します。empty() は、あると考えます。設定なし、isset() $id の値を取得できます:




コードをコピー

コードは次のとおりです:


$id=0;
empty($id)?print "空です。" :print "$id です。";
//結果: 空です。
!isset($id)?print "$id です。"; //結果: 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; $id; // get 1
if(!isset( $id)) $id=1;
print $id; // Get 0



それらの接続について言えば、empty() とisset() は両方とも変数処理関数であり、その機能は変数がすでに構成されているかどうかを判断することですが、変数の処理プロセスが非常に類似しているため、それらの関係についての理解が不十分です。 empty() と isset() の 2 つの関数自体だけを考慮すると、別の角度から見るとさらに混乱するでしょう。 empty() と isset() の処理対象は未定義変数、0、空文字列に過ぎません。
変数が 0 の場合、empty() は TRUE を返し、isset() は TRUE を返します。

変数が空の文字列の場合、empty() は TRUE を返し、isset() は TRUE を返します。定義されていない場合、empty() は TRUE を返し、isset() は FLASE を返します。


マニュアルでの 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 関数を使用します


http://www.bkjia.com/PHPjc/322452.html

www.bkjia.com

http://www.bkjia.com/PHPjc/322452.html技術記事 PHP の isset() 関数は、通常、変数がフォーマットされているかどうかを検出するために使用されます。 bool isset (mixed var [,mixed var [, ...]]) 関数: 変数が設定されているかどうかを検出します。 戻り値: 変数が設定されていない場合。存在する、戻る...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。