php_PHP チュートリアルでの empty、is_null、isset の違いの詳細な説明

WBOY
リリース: 2016-07-13 10:31:27
オリジナル
1072 人が閲覧しました

PHP には似たような機能を持つ関数がたくさんありますが、微妙な違いがあります。この記事で分析したように、is_null、empty、isset の 3 つの関数は、多くの努力をしないと理解するのが簡単ではありません。これら 3 つの機能の違いについて詳しく知るために、ウェブマスターをフォローしてみましょう。

まずこれら 3 つの関数の機能説明を見てみましょう

isset は、変数がすでに存在するかどうかを判断します。変数が存在する場合は TRUE を返し、存在しない場合は FALSE を返します。

empty は変数が空かどうかを決定します。変数が空でない値またはゼロでない場合、empty() は FALSE を返します。つまり、""、0、"0"、NULL、FALSE、array()、var $var;、および属性のないオブジェクトは空とみなされ、変数が空の場合は TRUE が返されます。

is_null は変数が NULL かどうかを決定します

さて、これが一般的な説明ですが、この説明はすでに非常にわかりにくいので、以下の具体的な例で分析してみましょう。

php_PHP チュートリアルでの empty、is_null、isset の違いの詳細な説明

これから、変数が "" または 0、または false または null である限り、これらの値がある限り、empty は true を返すことがわかります。

isset は変数が存在するかどうかのみを判断します。変数が null または未割り当てでない限り、戻り結果は true になります。 isset() を使用して NULL に設定された変数をテストすると、FALSE が返されます。 NULL バイト ("

そして is_null はまさに isset の逆結果です。これは isset の逆演算である !isset と考えることができます。

上記の例から、次の結論を引き出すこともできます (これは将来プログラミングでよく使用されるでしょう):

$var は任意の型であると仮定します

empty($var) が true の場合、(bool)($var) は false になります。逆に。

is_null($var) が true の場合、isset($var) は false になります。逆に。

例:

$i=$j+1;

ここでの is_null($j) は true (変数 $j が事前に宣言されていないため、isset($j) は false であることがわかります)

他に注意すべき 2 つの点は :

(1) empty() は変数のみを検出します。変数ではないものを検出すると解析エラーが発生します。つまり、次のステートメントは機能しません: empty(addslashes($name))。

(2) isset() は変数にのみ使用できます。他のパラメータを渡すと解析エラーが発生するためです。定数が設定されているかどうかを確認したい場合は、define()関数を使用します。

興味がありそうな記事

    PHP での複数のループを抜け出すための Break、Continue、Goto、Return、Exit の使用法と違い
  • mysql での tinyint、smallint、int、bigint 型の使用法の違い
  • PHPのecho、print、print_r、var_export、var_dumpの使用法と違い
  • ThinkPHPのexecuteメソッドとqueryメソッドの違い
  • readonly、disabled、display、visibleの違い
  • これらの違いの簡単な説明JavaScriptのscrollHeight、scrollWidth、scrollLeft、scrolltopなど
  • PHPのarray +とarray_mergeのマージの違い
  • phpでの$this、static、final、const、selfなどのいくつかのキーワードの使用

http://www.bkjia.com/PHPjc/764073.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/764073.html技術記事 PHPには似たような機能を持つ関数がたくさんありますが、この記事で分析したis_null、empty、issetの3つの関数のように、微妙な違いがあり、実際にそれを行うのは非常に簡単ではありません...。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート