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

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

Jul 13, 2016 pm 05:00 PM
empty isset null php そして 違い 存在する パフォーマンス 比較する

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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? Apr 07, 2025 am 12:02 AM

PHPでは、予測不可能なトークンを使用して、CSRF攻撃を効果的に防ぐことができます。特定の方法には次のものが含まれます。1。フォームのCSRFトークンを生成および埋め込みます。 2.リクエストを処理するときにトークンの有効性を確認します。

H5とミニプログラムとアプリの違い H5とミニプログラムとアプリの違い Apr 06, 2025 am 10:42 AM

H5。ミニプログラムとアプリの主な違いは次のとおりです。技術アーキテクチャ:H5はWebテクノロジーに基づいており、ミニプログラムとアプリは独立したアプリケーションです。経験と機能:H5は軽量で使いやすく、機能が限られています。ミニプログラムは軽量で、インタラクティブが良好です。アプリは強力で、スムーズな経験があります。互換性:H5はクロスプラットフォーム互換性があり、アプレットとアプリはプラットフォームによって制限されています。開発コスト:H5には、開発コストが低く、中程度のミニプログラム、最高のアプリがあります。適用可能なシナリオ:H5は情報表示に適しており、アプレットは軽量アプリケーションに適しており、アプリは複雑な機能に適しています。

PSのエクスポートPDFのパスワード保護を設定する方法 PSのエクスポートPDFのパスワード保護を設定する方法 Apr 06, 2025 pm 04:45 PM

Photoshopでパスワードで保護されたPDFをエクスポート:画像ファイルを開きます。 [ファイル]&gtをクリックします。 「エクスポート」> 「PDFとしてのエクスポート」。 「セキュリティ」オプションを設定し、同じパスワードを2回入力します。 [エクスポート]をクリックして、PDFファイルを生成します。

PHPで厳密なタイプ(declare(strict_types = 1);)を説明します。 PHPで厳密なタイプ(declare(strict_types = 1);)を説明します。 Apr 07, 2025 am 12:05 AM

PHPの厳格なタイプは、declare(strict_types = 1)を追加することで有効になります。ファイルの上部に。 1)関数パラメーターのタイプチェックと戻り値を強制して、暗黙の型変換を防ぎます。 2)厳格なタイプを使用すると、コードの信頼性と予測可能性を改善し、バグを減らし、保守性と読みやすさを向上させることができます。

どのようにしてクラスが拡張されたり、PHPでメソッドがオーバーライドされたりするのを防ぐことができますか? (最終キーワード) どのようにしてクラスが拡張されたり、PHPでメソッドがオーバーライドされたりするのを防ぐことができますか? (最終キーワード) Apr 08, 2025 am 12:03 AM

PHPでは、最終的なキーワードを使用して、クラスが継承されないようにし、メソッドが上書きされます。 1)クラスを決勝としてマークする場合、クラスを継承することはできません。 2)メソッドを最終的にマークする場合、メソッドはサブクラスによって書き換えられません。最終的なキーワードを使用すると、コードの安定性とセキュリティが保証されます。

PHPの未来:適応と革新 PHPの未来:適応と革新 Apr 11, 2025 am 12:01 AM

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

H5とMINIプログラムを宣伝するさまざまな方法は何ですか? H5とMINIプログラムを宣伝するさまざまな方法は何ですか? Apr 06, 2025 am 11:03 AM

H5とMINIプログラムのプロモーション方法には違いがあります。プラットフォーム依存:H5はブラウザに依存し、MINIプログラムは特定のプラットフォーム(WeChatなど)に依存しています。ユーザーエクスペリエンス:H5エクスペリエンスは貧弱で、ミニプログラムはネイティブアプリケーションと同様のスムーズな体験を提供します。通信方法:H5はリンクを介して広がり、ミニプログラムはプラットフォームで共有または検索されます。 H5プロモーション方法:ソーシャル共有、電子メールマーケティング、QRコード、SEO、有料広告。ミニプログラムプロモーション方法:プラットフォームプロモーション、ソーシャル共有、オフラインプロモーション、ASO、他のプラットフォームとの協力。

See all articles