修复 PHP 空函数
PHP习惯于在使用函数时将(int)0和(字符串)“0”评估为空。如果您期望数字或字符串值为 0,则可能会产生意外结果。如何“修复”它以仅对空对象,数组,字符串等返回true?empty()
PHP习惯于在使用函数时将(int)0和(字符串)“0”评估为空。如果您期望数字或字符串值为 0,则可能会产生意外结果。如何“修复”它以仅对空对象,数组,字符串等返回true?empty()
这对我不起作用。
if (empty($variable) && '0' != $variable) {
// Do something
}
我改用了:
if (empty($variable) && strlen($variable) == 0) {
// Do something
}
我很少使用你描述的原因。它混淆了合法的价值观和空虚。也许是因为我在SQL中做了很多工作,但我更喜欢用它来表示没有值。empty()
NULL
PHP 有一个函数,用于测试变量或表达式 。is_null()
NULL
$foo = 0;
if (is_null($foo)) print "integer 0 is null!\n";
else print "integer 0 foo is not null!\n";
$foo = "0";
if (is_null($foo)) print "string '0' is null!\n";
else print "string '0' is not null!\n";
$foo = "";
if (is_null($foo)) print "string '' is null!\n";
else print "string '' is not null!\n";
$foo = false;
if (is_null($foo)) print "boolean false is null!\n";
else print "boolean false is not null!\n";
您还可以使用 exact equals 运算符执行类似的测试:===
if ($foo === null) print "foo is null!\n";
如果 为 ,则为 真,但如果为 、零,则不然,依此类推。$foo
NULL
false
""