ホームページ  >  記事  >  バックエンド開発  >  PHP empty() isset() is_null() の違いとパフォーマンスの比較_PHP チュートリアル

PHP empty() isset() is_null() の違いとパフォーマンスの比較_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:00:051320ブラウズ

PHP では、empty()、isset()、is_null() の 3 つの関数はすべて空かどうかを判断するために使用されますが、これら 3 つの関数を詳しく理解したい場合は、まだ多くの違いがあることがわかります。私が説明します みんながまとめてくれました。

is_null()、empty()、isset()、これらの関数と == "、== array() は実際の操作でよく使われます。関数は非常に似ているため、違いが見落とされます。注意しないと、作業に多大な問題を引き起こす可能性があります。これらの構造は、あなた自身とみんなの参考のために以下にリストされています。表現の正確性を考慮して、一部の説明は、中国語の時宜にかなった更新や翻訳を避けるために、オリジナルの英語マニュアルからのものです。マニュアルが不適切など

is_null()
is_null()、bool、パラメータが null の 3 つの条件を満たす場合、is_null() は TRUE を返します。

null タイプ、次の状況は NULL とみなされます:

定数 NULL が割り当てられています。

まだ値が設定されていません。

設定が解除されました()。

出典:http://cn2.php.net/manual/en/ language.types.null.php

いせと()
isset()、ブール値。パラメータが NULL ではなく設定されているかどうかを判断するために使用されます。パラメータには変数のみを使用できます。

変数が設定されていない場合、変数が unset() されている場合、または変数値が NULL の場合は FALSE を返し、それ以外の場合は TRUE を返します。つまり、NULL でない場合は isset のカテゴリに分類され、is_null() 関数の正反対になります。

複数のパラメータが渡された場合、交差部分が取得されます。つまり、すべてのパラメータが isset() と一致する場合にのみ TRUE が返されます。

ps:define()、bool、定数が設定されているかどうかを確認するために使用されます。

出典:http://cn2.php.net/manual/en/function.isset.php

空()
empty()、bool、主に変数が空かどうかを判断するために使用されます。パラメータには変数のみを使用できます。

以下の状況は空とみなされます:

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

"" (空の文字列)

0 (0は整数)

0.0 (浮動小数点数としての 0)

「0」(文字列としての0)

ヌル

誤り

array() (空の配列)

var $var; (変数は宣言されていますが、クラスに値はありません)

注: パラメーターが設定されていない変数の場合、変数は NULL とみなされ、エラーは報告されず、TRUE が返されます。

ただし、5.0.0 以降では、プロパティのないオブジェクトは空とみなされなくなることに注意してください。

出典:http://cn2.php.net/manual/en/function.empty.php

空かどうかを判断する他の方法は == "、 == array() などですが、これらは非常に限定的であり、何も言うことはありません。

テストの種類は次のとおりです:

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

$a;
$b = false;
$c = '';
$d = 0;
$e = null;
$f = 配列();

?>

空()

最初は、空の var_dump 出力です:


:
var_dump(空($a));
var_dump(空($b));
var_dump(空($c));
var_dump(空($d));
var_dump(空($e));
var_dump(空($f));
?>

プログラムの出力は次のとおりです:
ブール(真)
ブール(真)
ブール(真)
ブール(真)
ブール(真)
ブール(真)

コードからわかるように、empty() はデータ型が空または false である限り true を出力します。
isset()

isset の出力をもう一度見てください:
var_dump(isset($a));
var_dump(isset($b));
var_dump(isset($c));
var_dump(isset($d));
var_dump(isset($e));
var_dump(isset($f));

// 出力
ブール(偽)
ブール(真)
ブール(真)
ブール(真)
ブール(偽)
ブール(真)

isset() は、NULL か未定義かを判断するためにのみ使用できることがわかります。
is_null()

最後はis_null:
の出力です var_dump(is_null($a));
var_dump(is_null($b));
var_dump(is_null($c));
var_dump(is_null($d));
var_dump(is_null($e));
var_dump(is_null($f));

// 出力
ブール(真)
ブール(偽)
ブール(偽)
ブール(偽)
ブール(真)
ブール(偽)

is_null はリテラルです。

empty() はすべてのデータ型が空か false かを判断するために使用できるのに対し、is_null は基本的に isset と同じであり、NULL か未定義かを判断するためにのみ使用できることがわかります。

isset、empty、is_null の違いの概要:

先ほど紹介したこと: 変数とパラメーターの型のチェック、これはこれら 3 つの関数の違いの基礎であり、最も見落とされやすいものでもあります。インターネット上でこれら 3 つの機能を比較した記事をたくさん見かけました。これらがカバーされることはほとんどありません。次にお話したいのは、両方が既存の変数をチェックするときの違いです。

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

$a=100;

$b="";

$c=null;

//セットチェック

echo "isset","$a=$a",isset($a)?"define":"undefine","rn";

echo "isset","$b=$b",isset($b)?"define":"undefine","rn";

echo "isset","$c=$c",isset($c)?"define":"undefine","rn";

設定解除($b);

echo "isset","$b",isset($b)?"define":"undefine","rn";

$b=0;

エコー「rnrn」;

//空の小切手

echo "empty","$a=$a",!empty($a)?"no empty":"empty","rn";

echo "empty","$b=$b",!empty($b)?"no empty":"empty","rn";

echo "empty","$c=$c",!empty($c)?"no empty":"empty","rn";

設定解除($b);

echo "empty","$b",!empty($b)?"no empty":"empty","rn";

$b=0;

エコー「rnrn」;

//is_null チェック

echo "is_null","$a=$a",!is_null($a)?"no null":"null","rn";

echo "is_null","$b=$b",!is_null($b)?"no null":"null","rn";

echo "is_null","$c=$c",!is_null($c)?"no null":"null","rn";

設定解除($b);

echo "is_null","$b",is_null($b)?"no null":"null","rn";

http://www.bkjia.com/PHPjc/631267.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/631267.html技術記事 php では、empty()、isset()、is_null() の 3 つの関数が空かどうかを判断するために使用されます。ただし、これら 3 つの関数を詳しく理解したい場合は、以下に示すように、まだ多くの違いがあることがわかります。 ..
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。