empty は変数が「空」かどうかを判断し、isset は変数が設定されているかどうかを判断します。このいわゆる「名前のとおり」が、最初に少し回り道をさせた理由です。変数の値が 0 に等しい場合、empty() も true (True) になります。
empty は変数が「空」かどうかを判断し、isset は変数が設定されているかどうかを判断します。このいわゆる「名前のとおり」が、最初に少し回り道をさせた理由です。変数の値が 0 に等しい場合、empty() も true (true) になるため、いくつかの事故が発生します。 empty と isset は両方とも変数処理関数であり、どちらも変数が設定されているかどうかを判断するために使用されますが、いくつかの違いがあることがわかりました。empty は変数が空かゼロかどうかも検出します。変数値が 0 の場合、empty は変数が空であることと同等であるとみなします。これは、設定されていないことと同等です。
たとえば、$id 変数を検出するには、$id=0 の場合、empty と isset を使用して変数 $id が設定されているかどうかを検出します。両方とも異なる値を返します。empty は設定されていないことを意味し、isset は設定できます。 $id の値を取得します:
$id=0;
empty($id)?print "空です。":print "$id です。";
//結果: 空です
「
」を印刷 ";
!isset($id)?print "空です。":print "$id です。";
//結果: 0 です
これは、変数処理関数を使用する場合、変数の値が 0 である可能性がある場合、empty を使用する場合は注意して、それを isset に置き換える方が賢明であることを意味します。
PHP チュートリアル ページの URL 末尾パラメータが id=0 (例: test.php?id=0) と表示される場合は、次のように比較してください。
If(empty($id)) $id=1; - id=0 の場合、id も 1 になりますIf(!isset($id)) $id=1; - id=0 の場合、id は 1 になりません次のコードを個別に実行して、上記の推論を検出できます:
if(empty($id)) $id=1;$id を出力します // 1 を取得します
if(!isset($id)) $id=1;
$id を出力します //0 を取得します
例を見てみましょう
$var = 0;
// $var が空なので結果は true になります
if (空($var)) {
echo '$var は 0 か、まったく設定されていません';
}
// $var が設定されているため、結果は false になります
if (!isset($var)) {
echo '$var がまったく設定されていません';
}
?>
これは関数ではなく言語構造であるため、変数関数から呼び出すことはできません。
注: empty() は変数のみをテストします。変数ではないものをテストすると解析エラーが発生します。つまり、次のステートメントは機能しません: empty(addslashes($name))。
以下は、Script House でテストされた isset 関数と empty 関数の詳細なサンプルコードです。これを読めば、基本的にはほぼ完了です
。
error_reporting(e_all);
echo '$var が定義されていません
';
echo "isset テスト:
";
if ( isset ( $var ))
{
echo '変数 $var が存在します!
;
}
echo "空のテスト:
";
if ( 空 ( $var )){
echo '変数 $var の値は空です
';
}
それ以外
{
echo '変数 $var の値が空ではありません
';
}
echo "変数の直接テスト:
";
if ( $var ){
echo '変数 $var が存在します!
';
}
他に{
echo '変数 $var が存在しません!
';
}
エコー「--------------------------------
」 ';
エコー '$var = ''
';
echo "isset テスト:
";
$var = '';
if ( isset ( $var ))
{
echo '変数 $var が存在します!
;
}
echo "空のテスト:
";
if ( 空 ( $var )){
echo '変数 $var の値は空です
';
}
それ以外
{
echo '変数 $var の値が空ではありません
';
}
echo "変数の直接テスト:
";
if ( $var ){
echo '変数 $var が存在します!
';
}
他に{
echo '変数 $var が存在しません!
';
}
エコー「--------------------------------
」 ';
エコー '$var = 0
';
echo 'isset テスト:
';
$var = 0 ;
if ( isset ( $var ))
{
echo '変数 $var が存在します!
;
}
echo "空のテスト:
";
if ( 空 ( $var )){
echo '変数 $var の値は空です
';
}
それ以外
{
echo '変数 $var の値が空ではありません
';
}
echo "変数の直接テスト:
";
if ( $var ){
echo '変数 $var が存在します!
';
}
他に{
echo '変数 $var が存在しません!
';
}
エコー「--------------------------------
」 ';
エコー '$var = null
';
echo 'isset テスト:
';
$var = null ;
if ( isset ( $var ))
{
echo '変数 $var が存在します!
;
}
echo "空のテスト:
";
if ( 空 ( $var )){
echo '変数 $var の値は空です
';
}
それ以外
{
echo '変数 $var の値が空ではありません
';
}
echo "変数の直接テスト:
";
if ( $var ){
echo '変数 $var が存在します!
';
}
他に{
echo '変数 $var が存在しません!
';
}
エコー「--------------------------------
」 ';エコー '$var="php"
';
echo 'isset テスト:
';
$var = "php";
if ( isset ( $var ))
{
echo '変数 $var が存在します!
;
}echo "空のテスト:
";
if ( 空 ( $var )){
echo '変数 $var の値は空です
';
}
それ以外
{
echo '変数 $var の値が空ではありません
';
}
echo "変数の直接テスト:
";
if ( $var ){
echo '変数 $var が存在します!
';
}
他に{
echo '変数 $var が存在しません!
';
}
?>