ホームページ php教程 php手册 php 空、isset、です

php 空、isset、です

Jun 21, 2016 am 08:56 AM
echo empty isset null test

1. 例
A. 変数が定義されていない場合、どのように判断すればよいでしょうか?

コードは次のとおりです。次のように:

#$test 変数が存在しません

$isset= isset($test)?"テストは定義です!":"テストは未定義です!" ;
echo "isset:$issetrn";

$empty=!empty($test)?"テストは定義されています!":"テストは未定義です!";
echo "empty:$ emptyrn";

$is_null=is_null($test)?"テストは定義されています!":"テストは未定義です!";
echo "is_null:$is_nullrn";

テスト結果は次のとおりです:


結果は次のとおりです:
empty と isset は、まず変数が存在するかどうかを確認し、次に変数の値を検出します。そして is_null は変数値を直接チェックして null かどうかを確認するだけなので、変数が定義されていない場合はエラーが発生します。

B. それぞれが受け取るパラメータを確認してください。

isset 関数パラメータ:

$test=100;

echo isset($test),isset(100),$isset($b=100);




解析エラー: 解析エラー、予期しない T_LNUMBER、PHPDocument3 行に T_STRING または T_VARIABLE または "$" が必要です;b>3

空の関数パラメータ:

$test=100;

エコー空($test),空(100),空($b=100);



解析エラー: 解析エラー、予期しない T_LNUMBER、PHPDocument3 行に T_STRING または T_VARIABLE または "$" が必要です;b>3

is_null 関数パラメータ:

$test=100;

エコー is_null($test),is_null(100),is_null($b=100);


実行結果: エラーはありません。

比較結果は次のとおりです。

空、isset 入力パラメータは変数 (php 変数は $ 文字で始まる) である必要があり、is_null 入力パラメータには戻り値のみが必要です。 (定数、変数、式など)。 PHP マニュアルでは、空、isset は関数ではなく言語構造であるため、変数関数から呼び出すことができないと分析されています。

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

例:



コードをコピー

コードは次のとおりです: $a=100;

$c=null;

//isset check
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";
unset($b); ,"$ b",isset($b)?"define":"undefine","rn";
$b=0;
echo "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": "空" ,"rn";
unset($b);
エコー "空","$b",!empty($b)?"空ではありません":"空","rn";
$b=0;
echo "rnrn";

//is_null check
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";
unset($b); ,"$ b",is_null($b)?"no null":"null","rn";



上記の簡単なテストを通じて、変数が存在する場合、isset、empty、is_null の検出、および値の取得を一般的に知ることができます。上記に例示されていない変数がさらにあります。実際、テストでは次のことが判明しました。



変数が空でない値またはゼロ以外の値の場合、empty() は FALSE を返します。つまり、 ""、0、"0"、NULL、FALSE、array()、var $var、unknown; およびプロパティを持たないオブジェクトは空とみなされ、 var が空の場合は TRUE が返されます。

isset

変数が存在する (NULL ではない) 場合は TRUE を返し、それ以外の場合は FALSE (未定義を含む) を返します。変数値は null に設定され、戻り値も false になります。変数の設定を解除すると、変数はキャンセルされます。 isset は NULL 値変数を特別に処理することに注意してください。

is_null

受信値 [値、変数、式] が null であるかどうかを確認し、その値が null であることを返します。 FALSE [未定義の変数を渡すとエラーが発生します! ].


質問: 変数が設定されており、その値が NULL であるかどうかを確認するにはどうすればよいですか?

上記の比較を通して、誰もが私と同じようにこの疑問を心に抱くのではないでしょうか。 変数が null かどうかを検出するには、is_null を使用できますが、変数が定義されていない場合はエラーが発生します。したがって、変数が定義されているかどうかを検出するには isset を使用できると考えましたが、変数の値が null の場合は false を返します。ははは、この問題を解決するにはどうすればよいでしょうか。全員が共有するのを待っています...

変数が存在し、値が NULL であることを確認します。

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


function checkNull($a)
{
if(array_key_exists($a,$GLOBALS))
{
global $$a;
if(is_null($$a))
return true;
}
$test=null; ("テスト"));
var_dump(checkNull("test1"));





このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

Huawei Watch GT 5スマートウォッチが新機能を追加してアップデートされる Huawei Watch GT 5スマートウォッチが新機能を追加してアップデートされる Oct 03, 2024 am 06:25 AM

ファーウェイは、Watch GT 5 および Watch GT 5 Pro スマートウォッチ用のソフトウェア バージョン 5.0.0.100(C00M01) をグローバルに展開しています。これら 2 つのスマートウォッチは最近ヨーロッパで発売され、標準モデルが同社の最も安価なモデルとして登場しました。このハーモニー

鉄拳のカーネル・サンダースの夢をKFCが揚げた 鉄拳のカーネル・サンダースの夢をKFCが揚げた Oct 02, 2024 am 06:07 AM

『鉄拳』シリーズのディレクターである原田勝弘氏は、かつて真剣にカーネル・サンダースを象徴的な格闘ゲームに登場させようとした。 TheGamerとのインタビューで原田氏は、このアイデアを日本KFCに売り込み、ファストフード界のレジェンドをGとして追加したいと考えていたことを明かした。

初見:次期 Anker Zolo 4 ポート 140W ディスプレイ付き充電器の開封ビデオが流出 初見:次期 Anker Zolo 4 ポート 140W ディスプレイ付き充電器の開封ビデオが流出 Oct 01, 2024 am 06:32 AM

2024年9月初め、AnkerのZolo 140W充電器がリークされました。これは同社初のディスプレイ付き壁掛け充電器だったため、大きな話題になりました。 YouTube の Xiao Li TV からの新しい開封ビデオでは、この製品を直接見ることができます。

Samsung Galaxy Z Fold Special Edition、競合する名前が浮上、10月下旬に発売されることが判明 Samsung Galaxy Z Fold Special Edition、競合する名前が浮上、10月下旬に発売されることが判明 Oct 01, 2024 am 06:21 AM

サムスンの待望の折りたたみ式「スペシャルエディション」の発売には、また新たな展開が加わった。ここ数週間、いわゆる Galaxy Z Fold Special Edition に関する噂はかなり静かになりました。代わりに、焦点はGalaxy S25シリーズに移りました。

HyperOS を搭載した新しい Xiaomi Mijia グラフェン オイル ヒーターが到着 HyperOS を搭載した新しい Xiaomi Mijia グラフェン オイル ヒーターが到着 Oct 02, 2024 pm 09:02 PM

Xiaomiは間もなくMijiaグラフェンオイルヒーターを中国で発売する予定です。同社は最近、Youpin プラットフォームでホストされるスマート ホーム製品のクラウドファンディング キャンペーンを実施し、成功を収めました。ページによると、デバイスはすでに出荷され始めています

Garmin、新しいアップデートにより複数のスマートウォッチ向けの Adventure Racing アクティビティの改善をリリース Garmin、新しいアップデートにより複数のスマートウォッチ向けの Adventure Racing アクティビティの改善をリリース Oct 01, 2024 am 06:40 AM

Garmin は、最新のハイエンド スマートウォッチの新しい安定したアップデートのセットで月末を迎えます。要約すると、同社は Enduro 3、Fenix E、および Fenix 8 のバッテリー消耗の多さに対処するためにシステム ソフトウェア 11.64 をリリースしました (Amazon で現在 1,099.99 ドル)。

Cyber​​truck FSD のレビューでは、素早いレーン切り替えと全画面視覚化が賞賛されています Cyber​​truck FSD のレビューでは、素早いレーン切り替えと全画面視覚化が賞賛されています Oct 01, 2024 am 06:16 AM

テスラは最新の完全自動運転 (監視付き) バージョン 12.5.5 を展開しており、これには、ファウンデーション シリーズのトリム価格に含まれる機能を備えたピックアップが発売されてから 10 か月後に、約束されていたサイバートラック FSD オプションがついに付属します。 F

Manjaro 24.1「Xahea」は、KDE ​​Plasma 6.1.5、VirtualBox 7.1 などとともに起動します Manjaro 24.1「Xahea」は、KDE ​​Plasma 6.1.5、VirtualBox 7.1 などとともに起動します Oct 02, 2024 am 06:06 AM

10 年以上の歴史を持つ Manjaro は、インストールと使用が簡単で、初心者とパワーユーザーの両方に適した最もユーザーフレンドリーな Linux ディストリビューションの 1 つとみなされています。主にオーストリア、ドイツ、フランスで開発されたこの Arch ベースのディストリビューション

See all articles