当前位置:Gxlcms > PHP教程 > php相等性比较以及empty,isset,isnull

php相等性比较以及empty,isset,isnull

时间:2021-07-01 10:21:17 帮助过:2人阅读

变量为空

以下的东西被认为是空的:

  • “” (空字符串)
  • 0 (作为整数的0)
  • 0.0 (作为浮点数的0)
  • “0” (作为字符串的0)
  • NULL
  • FALSE
  • array() (一个空数组)
  • $var; (一个声明了,但是没有值的变量)

判断语句中空值返回false,以下代码不会产生任何输出,因为if 语句中的判断都为false:

$emptyList = ["",  0, 0.0, "0", NULL, FALSE, array(), $var, ];
foreach($emptyListas$val) {
    if ($val) {
        var_dump($val);
    }
}

比较运算符: =====

  • ==只涉及到值的比较
var_dump(0 == '0.0'); //true
var_dump(0 == ''); //true
var_dump(0 == false); //true
  • === 同时涉及 值 与类型的比较, 更为严格
var_dump(0 === '0.0'); //false
var_dump(0 === ''); //false
var_dump(0 === false); //false
  • null 与 空值 通过== 比较, 除了 “0” ,都返回true:
$emptyList = ["",  0, 0.0, "0", NULL, FALSE, array(), $var, ];
foreach($emptyListas$val) {
    var_dump($val == null);
}

empty, isset, isnull

  • empty:检查一个变量是否为空
$emptyList = ["",  0, 0.0, "0", NULL, FALSE, array(), $var, ];
foreach ($emptyList as $e) {
    var_dump(empty($e));
}
/*
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
*/
  • isset:判断变量var 存在并且值不是 NULL 则返回 TRUE,否则返回 FALSE。
$var = 1;
var_dump(isset($var)); // trueunset($var);
var_dump(isset($var)); // false$var = null;
var_dump(isset($var)); // false
  • isnull: 判断变量是否 为 null , 等价于 === null

注意

空值之间的==比较不一定返回 true :

// 不具传递性var_dump(0 == '0'); // truevar_dump('' == 0 ); // truevar_dump('0' == ''); // falsevar_dump(0 == []); // false

最佳实践

  • 空值判断使用 empty 判断;
  • isset 无法判断存在但值为null的变量;
  • php ===== 差别在于后者同时进行类型相等判断

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
  • ').text(i)); }; $numbering.fadeIn(1700); }); });

    以上就介绍了php 相等性比较 以及 empty,isset, isnull,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

  • 人气教程排行