1. 例
A. 変数が定義されていない場合、どのように判断すればよいでしょうか? = isset($test)?"test is undefine!";
$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、3< 行目の PHPDocument3 に T_STRING または T_VARIABLE または '$' が必要です;/b>
空の関数パラメータ:
$test=100;
エコー空($test)、空(100)、空($b=100);
解析エラー: 解析エラー、予期しない T_LNUMBER、3< 行目の PHPDocument3 に T_STRING または T_VARIABLE または '$' が必要です;/b>
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; echo " isset","$a=$a",isset($a)?"define":"undefine","rn";
echo "isset","$b=$b",isset($b) )?" 定義":"定義解除","rn";
エコー "isset","$c=$c",isset($c)?"定義":"定義解除","rn"; b);
echo "isset","$b",isset($b)?"define":"undefine","rn";
echo "rnrn";
echo " empty","$a=$a",!empty($a)?"no empty":"empty","rn";
echo "empty","$b=$b",!empty ($b )?"空なし":"空","rn"; echo "空","$c=$c",!empty($c)?"空なし":"空","rn "; unset($b); echo "empty","$b",!empty($b)?"no empty":"empty","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);
echo "is_null","$b",is_null($b)?"no null":"null","rn";
上記の簡単なテストを通じて、変数が存在する場合、isset、empty、is_null の検出、および値の取得を一般的に知ることができます。上記に例示されていない変数がさらにあります。実際、テストでは次のことが判明しました:
empty
変数が空でない値またはゼロ以外の値の場合、empty() は FALSE を返します。つまり、 ""、0、"0"、NULL、FALSE、array()、var $var、unknown; およびプロパティを持たないオブジェクトは空とみなされ、 var が空の場合は TRUE が返されます。
isset
変数が存在する場合(NULLではない)はTRUEを返し、それ以外の場合はFALSE(未定義を含む)を返します。変数値は null に設定され、戻り値も false になります。変数の設定を解除すると、変数はキャンセルされます。 isset は NULL 値変数を特別に処理することに注意してください。
is_null
受信値 [値、変数、式] が null であるかどうかを検出します。変数が 1 つだけ定義されており、その値が null の場合は TRUE を返します。その他の場合は FALSE を返します [未定義の変数が渡されました]。入ってから! 】.
質問: 変数が設定されており、値が NULL であることをどのように判断しますか?
上記の比較を通して、誰もが私と同じようにこの疑問を心に抱くのではないでしょうか。 変数が null かどうかを検出するには、is_null を使用できますが、変数が定義されていない場合はエラーが発生します。したがって、変数が定義されているかどうかを検出するには isset を使用できると考えましたが、変数の値が null の場合は false を返します。ははは、この問題を解決するにはどうすればよいでしょうか。みんなが共有するのを待っています...
変数が存在し、値が NULL であることを確認します。
コードをコピーします コードは次のとおりです:
function checkNull($a)
{
if(array_key_exists($a ,$GLOBALS))
{
グローバル $$a;
if(is_null($$a))
true を返す
}
$test=null;
var_dump(checkNull("test") );
var_dump(checkNull("test1"));
http://www.bkjia.com/PHPjc/322515.html
www.bkjia.comtruehttp://www.bkjia.com/PHPjc/322515.html技術記事 1. 例 A. 変数が定義されていません。どのように判断すればよいでしょうか? 以下のコードをコピーします: ?php #$test は存在しません。変数 $isset= isset($test)?"test is define!": 「私をテストしてください...
」