phpでempty()、isset()、is_null()と変数自体のブール判定の違い
8120 ワード
phpスクリプトでは、変数が定義されているか、空であるかを判断するには、これらの関数empty()、isset()、is_を使用する必要があります.null()とそれ自体をパラメータとして、次のセグメントプログラムを簡単に比較します.
まとめ1:結果から分かるように、「」、0、「0」、NULL、FALSE、array()のうち、empty()と「変数自体がパラメータ」の結果は一致し、いずれも「空」として処理され、isset()とis_null()はnullの場合のみ「空」として処理されます(falseは空とはみなされません)
次に、変数が初期化を定義していない場合、これらの関数は何を返しますか?
総括2:結果から分かるように、変数が定義されていない場合、is_null()と「自己パラメータ」はパラメータとして判断することは許されませんが、結果的に「空」と判断できるので、使用しないことをお勧めします.
isset()とempty()は正常に「空」と判断できる.
<?php
// : , 0, 0,null, false,
$arr_var = array('', '0', 0, null, false, array());
foreach ($arr_var as $value) {
echo '<br> :' . $value . '<br>';
if (!isset($value)) {
echo 'isset()==false<br>';
}
if (empty($value)) {
echo 'empty()==true<br>';
}
if (!$value) {
echo 'self==false<br>';
}
if (is_null($value)) {
echo 'is_null()==true<br>';
}
}
?>
:
:
empty()==true
self==false
:0
empty()==true
self==false
:0
empty()==true
self==false
:
isset()==false
empty()==true
self==false
is_null()==true
:
empty()==true
self==false
:Array
empty()==true
self==false
まとめ1:結果から分かるように、「」、0、「0」、NULL、FALSE、array()のうち、empty()と「変数自体がパラメータ」の結果は一致し、いずれも「空」として処理され、isset()とis_null()はnullの場合のみ「空」として処理されます(falseは空とはみなされません)
次に、変数が初期化を定義していない場合、これらの関数は何を返しますか?
echo '<br> :undefine<br>';
if (!isset($value_undefine)) {
echo 'isset()==false<br>';
}
if (empty($value_undefine)) {
echo 'empty()==true<br>';
}
if (!$value_undefine) {
echo 'self==false<br>';
}
if (is_null($value_undefine)) {
echo 'is_null()==true<br>';
}
:
:undefine
isset()==false
empty()==true
( )
self==false
( )
is_null()==true
総括2:結果から分かるように、変数が定義されていない場合、is_null()と「自己パラメータ」はパラメータとして判断することは許されませんが、結果的に「空」と判断できるので、使用しないことをお勧めします.
isset()とempty()は正常に「空」と判断できる.
:
isset(), null , false
empty(),""、0、"0"、NULL、FALSE、array(), , false
, empty() , ,
is_null(), null,