目次
2。 empty() 「空」を解釈する方法
3.いつ使用するかis_null()
一目で重要な違い
ベストプラクティスと推奨事項
ホームページ バックエンド開発 PHPチュートリアル 変数検証用の `sisset()`、 `empty()`、 `is_null()`のニュアンス

変数検証用の `sisset()`、 `empty()`、 `is_null()`のニュアンス

Jul 24, 2025 pm 10:15 PM
PHP Variables

ISSET()は、変数がnullではなく宣言されているかどうかを確認し、空の文字列に真のものを返します。それを使用して、$ _POST ['Email']などのフォーム入力の検証など、変数が存在することを確認し、設定されています。 2。empty()は、ユーザーロジックの意味で値が「空」であるかどうかを判断し、「、0、 '0」、null、false、[]、および0.0を真に返し、未定義の変数には安全です。オプションのユーザー入力フィールドなど、「0」または0を無効または提供されていないように扱うときに使用します。 3。IS_NULL()は、変数が存在し、明示的にnullである場合にのみTRUEを厳密に返しますが、PHPの動作により未定義の変数に対して誤解を招くように返します。変数が存在することが保証されている場合にのみ使用し、nullを他のfalsy値と区別する必要があります。未定義またはnullを安全に確認するには、isset()と組み合わせて()if(!isset($ var)|| $ var === null)、および厳密なnullチェックの場合は、if(sisset($ var)&& $ var === null)を使用します。

変数検証用の `sisset()`、 `empty()`、 `is_null()`のニュアンス

PHP、 isset()empty() 、およびis_null()の変数を検証する場合、一般的に使用されますが、それらは異なって振る舞い、しばしば誤解されます。特にユーザー入力、フォームデータ、またはAPI応答を扱う場合、間違った結果を選択すると、予期しない結果が発生する可能性があります。ニュアンスを分解して、それぞれをいつ使用するかを正確に確認しましょう。

変数検証用の `sisset()`、 `empty()`、 `is_null()`のニュアンス

1. isset()本当にチェックします

isset()変数nullではなく宣言されているかどうかを決定します。

 $ var = null;
Echo Isset($ var)? 「はい」:「いいえ」; //出力:いいえ

$ var = '';
Echo Isset($ var)? 「はい」:「いいえ」; //出力:はい
  • falseを返す場合:
    • 変数は存在しません。
    • 変数は存在しますが、 nullが割り当てられます。
  • 空の文字列、 0'0'false 、要素のない配列( nullまたは未定義を除くもの)にtrueを返します。

?変数が設定されており意味のある値があるかどうかを知りたい場合はisset()を使用します(その値が論理的に「空」であっても)。

変数検証用の `sisset()`、 `empty()`、および `is_null()`のニュアンス

一般的なユースケース: $_POST['email']がフォームで送信されたかどうかを確認します。


2。 empty() 「空」を解釈する方法

empty()変数がゆるいユーザーロジックな意味で「空」と見なされる場合にtrueを返します。

変数検証用の `sisset()`、 `empty()`、 `is_null()`のニュアンス

これらの値はすべてempty()に対してtrueを返します:

  • '' (空の文字列)
  • 0
  • '0'
  • null
  • false
  • [] (空の配列)
  • 0.0
 var_dump(empty( '0')); // true  - しばしば驚くべきことです!
var_dump(empty([])); // 真実
var_dump(empty(null)); // 真実

'0'0ような値が「提供されていない」または「無効」として扱われる必要があるユーザー入力をチェックしている場合はempty()を使用します。

注: empty()変数が存在しない場合、変数を直接使用しない場合、警告を生成しません。したがって、未定義のVARにとって安全です。


3.いつ使用するかis_null()

is_null()は厳格です。変数が存在し、明示的にnullである場合にのみtrueを返します。

 $ var;
var_dump(is_null($ var)); // true(暗黙のヌル)

$ var = null;
var_dump(is_null($ var)); // 真実

$ var = '';
var_dump(is_null($ var)); // 間違い

しかし:

 var_dump(is_null($ undefined)); // true  - 未定義であっても!

待ってください - はい、 is_null()変数が存在しないときにPHPがデフォルトでnullを渡すため、未定義の変数に対してtrueを返します。

⚠️so: is_null() 、既に宣言されていることがわからない限り、未定義の変数をチェックするのに安全ではありません

is_null()を使用して、変数が存在し、 null他のfalsy値と区別する必要があると確信している場合にのみ使用します。


一目で重要な違い

価値isset() empty() is_null()
null間違い真実真実
''真実真実間違い
'0'真実真実間違い
0真実真実間違い
false真実真実間違い
[]真実真実間違い
未定義間違い真実真実*

* is_null($undefined)trueを返しますが、変数が存在しないため、それは誤解を招くものです。


ベストプラクティスと推奨事項

  • isset()を使用して、変数( $_GET['id']など)が提供されたかどうかを確認します。
  • seald empty()を使用して、 '0'または0欠落している(たとえば、オプションのフィールド)として扱う必要があるユーザー入力を使用します。
  • comation変数が存在することが保証されているコンテキストにない限り、 is_null()を避けてください。
  • ?厳格なチェックについては、ツールを結合します。
     if(Isset($ var)&& $ var === null){ / *明示的にnull * /}
  • ?§未定義またはnullを安全に確認するには:
     if(!isset($ var)|| $ var === null){ / * setまたはnull * /}

    基本的に、選択はあなたが検証しようとしていること、つまり存在、使いやすさ、または厳格な無効性に依存します。それらを混ぜると、特に'0'が有効なデータ(ゼロ評価など)が有効なデータがある場合、バグにつながります。違いを知り、エッジのケースをテストします。

    以上が変数検証用の `sisset()`、 `empty()`、 `is_null()`のニュアンスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

ホットトピック

関数内の値による参照による変数を渡します 関数内の値による参照による変数を渡します Jul 26, 2025 am 09:49 AM

PassbyValueemeansAcopyofthedataispassed、sichangesinsisidetheThectiondonotaffecttheoriginalvariabuiable、AsseenincwithitiveTorpithimmutabletypes.2.PassbyReferencemeansemeansemeansemeansemeansemeantsefunction receiveSediveationiveationiveSeorignisinisinisinisisinisisiNisinisisinisinisinisinisinisinisinisis

PHP SuperGlobalsに深く潜る:「$ _get」と `$ _POST`を超えて PHP SuperGlobalsに深く潜る:「$ _get」と `$ _POST`を超えて Jul 26, 2025 am 09:41 AM

phpsuperglobalsinclude $ _get、$ _ post、$ _ request、$ _ session、$ _ cookie、$ _ server、$ _ files、$ _ env、および$ globals、各セルシングディンティックプルーズsbeyondjusthandlingformdata; theyablestatemanagement、serverInteraction、andenvironmentaccess.1。$ _ requestcombines $ _get、$ _ post、

PHPの変数変数を分類する( `$$ var`) PHPの変数変数を分類する( `$$ var`) Jul 25, 2025 am 04:42 AM

変数変数は、$$ var構文を介して別の変数の名前として1つの変数の値を使用します。 2。たとえば、$ myvarが「hello」の場合、$$ myvarは$ helloに相当し、値を割り当てることができます。 3.実際のアプリケーションでは、フォームデータを動的に処理するために使用できます。たとえば、$ _POSTをforeachで移動したり、$$キーを使用して対応する変数を作成したりできます。 4.読みやすさの低さ、セキュリティの高いリスクが高く、特にユーザー入力のための$$の使用を回避することなどの問題があります。 5.動的変数を作成する代わりに、データを$データアレイに保存するなど、動的変数を作成する代わりに、配列またはオブジェクトを使用することをお勧めします。 6。$ {$ var}の使用curlyブレース構文を使用すると、特に複雑なシナリオでコードの明確さを改善できます。可変変化

PHPと入力されたプロパティでクラスを近代化します PHPと入力されたプロパティでクラスを近代化します Jul 26, 2025 am 09:49 AM

plopertiesInphp7.4 approaddirecttypedeclaration forclassporties、改善可能性、idesupport、andcodeclarity;

「グローバル」キーワードに対するケース:クリーナーコードの戦略 「グローバル」キーワードに対するケース:クリーナーコードの戦略 Jul 25, 2025 am 11:36 AM

theglobalkeywordunncondallyは、debug、andmentainを使用することを不必要に使用します。代わりに、functionparametersandreturnvaluestopassdataexplicty.2.replaceglobalvariablespurefurefurnctionsを使用して、depuntionsutiontuntututututsiを使用してください

PHP変数のライフサイクル:割り当てからごみ収集まで PHP変数のライフサイクル:割り当てからごみ収集まで Jul 24, 2025 pm 10:49 PM

aphpvariaible'slifecyclebeginswithmoryallocationviazvalcreation、タイプ、referencecount、andreferenceflag.2.whenvariablessignedorshared、phpusesreferencecountingandcountingandcopy-on-writeTeTeToptimizeMoryasage、juthing-durplicationagedaTawhnedationage

PHP定数と変数:不変性のガイド PHP定数と変数:不変性のガイド Jul 25, 2025 pm 05:37 PM

constantsCannotBeChangedafterDefinition、whorvariablescan; 1.variablesstartwith $、aremutable、scoped、andidealfordynamicdata;

変数検証用の `sisset()`、 `empty()`、 `is_null()`のニュアンス 変数検証用の `sisset()`、 `empty()`、 `is_null()`のニュアンス Jul 24, 2025 pm 10:15 PM

Isset()checksifavariableisdeclaredandnotnull、returningtrueemptystrings、0、 '0'、false、およびandemptyArrays; useittoconfirmavariaiainiaiainiaiveExistasnhasbeensetなど、$ _post ['email']

See all articles