修复 PHP 空函数

2022-08-30 13:34:43

PHP习惯于在使用函数时将(int)0和(字符串)“0”评估为空。如果您期望数字或字符串值为 0,则可能会产生意外结果。如何“修复”它以仅对空对象,数组,字符串等返回true?empty()


答案 1

这对我不起作用。

if (empty($variable) && '0' != $variable) {
  // Do something
}

我改用了:

if (empty($variable) && strlen($variable) == 0) {
  // Do something
}

答案 2

我很少使用你描述的原因。它混淆了合法的价值观和空虚。也许是因为我在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";

如果 为 ,则为 真,但如果为 、零,则不然,依此类推。$fooNULLfalse""


推荐