PHPにおけるisset()とempty()の違いの詳しい説明
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 関数を使用します

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、
