PHP empty()函数
empty()函数 是在 PHP 中的一种内置函数,用于检查变量是否为空。
语法
bool empty ( $ variable name )
参数: 此函数接受一个参数,如上述语法所示,并在下面描述。
- $variable name: 需要检查是否为空的变量。
注意:PHP 5.5以下版本,empty()只支持因子,其他任何值都会导致解析错误。以下语句不起作用:empty(trim($var))
。在这种情况下,请使用trim($name) == false
。
返回类型: 如果$var存在且具有非空、非零值,则返回FALSE。否则返回TRUE。
空数据类型列表:
- “0”(字符串0)
- 0(数字0)
- “”(空字符串)
- 无效或NULL情况
- False
- ” “(空字符串)
- Array()(空数组)
- $variable _ name;(在类中声明但没赋值的变量)
示例1
<!DOCTYPE html>
<html>
<body>
<?php
// PHP code to demonstrate working of empty() function
var1 = 0;var2 = 0.0;
var3 = "0";var4 = NULL;
var5 = false;var6 = array();
var7 = "";
// for value 0 as integer
empty(var1) ? print_r("True\n") : print_r("False\n");
// for value 0.0 as float
empty(var2) ? print_r("True\n") : print_r("False\n");
// for value 0 as string
empty(var3) ? print_r("True\n") : print_r("False\n");
// for value Null
empty(var4) ? print_r("True\n") : print_r("False\n");
// for value false
empty(var5) ? print_r("True\n") : print_r("False\n");
// for array
empty(var6) ? print_r("True\n") : print_r("False\n");
// for empty string
empty(var7) ? print_r("True\n") : print_r("False\n");
// for not declare var8
empty(var8) ? print_r("True\n") : print_r("False\n");
?>
</body>
</html>
输出:
如您在上面的示例中清楚地看到的那样,我们使用了不同的变量,每个变量都具有不同的空数据类型,以展示当不同数据类型的变量为空时,空函数在每个情况下都会显示为真。此外,我们还使用了三元运算符使程序易于理解。
注意:您可以利用PHP的empty()函数来判断一个变量是否为空。如果一个变量不存在或者其值等于FALSE,则被视为空。
示例2
<!DOCTYPE html>
<html>
<body>
<?php
var1 = '';var2 = 0;
var3 = NULL;var4 = FALSE;
var5 = array();
// Testing the variables
if(empty(var1)){
echo 'This line is printed, because the var1 is empty.';
}
echo "<br>";
if(empty(var2)){
echo 'This line is printed, because the var2 is empty.';
}
echo "<br>";
if(empty(var3)){
echo 'This line is printed, because the var3 is empty.';
}
echo "<br>";
if(empty(var4)){
echo 'This line is printed, because the var4 is empty.';
}
echo "<br>";
if(empty(var5)){
echo 'This line is printed, because the $var5 is empty.';
}
?>
</body>
</html>
输出:
示例3
<!DOCTYPE html>
<html>
<body>
<?php
ivar1=0;istr1='Learning empty';
if (empty(ivar1))
{
echo 'ivar1'." is empty or 0. <br />";
}
else
{
echo 'ivar1'." is not empty or 0. <br />";
}
if (empty(istr1))
{
echo 'istr1'." is empty or 0. <br />";
}
else
{
echo 'istr1' ." string is not empty or 0. <br />";
}
?>
</body>
</html>
输出:
如您在上面的示例中可以清楚地看到,我们使用了2个不同的变量,每个变量都有不同的数据类型。其中一个是整数类型,初始值为0,另一个是字符串类型,包含一些文本。当一个空函数显示true时,整数被认为是空的,而字符串则为false,因为它包含了文本。
示例4
<!DOCTYPE html>
<html>
<body>
<?php
function is_multiArrayEmpty(multiarray) { if(is_array(multiarray) and !empty(multiarray)){tmp = array_shift(multiarray); if(!is_multiArrayEmpty(multiarray) or !is_multiArrayEmpty(tmp)){ return false; } return true; } if(empty(multiarray)){
return true;
}
return false;
}
testCase = array (
0 => '',
1 => "",
2 => null,
3 => array(),
4 => array(array()),
5 => array(array(array(array(array())))),
6 => array(array(), array(), array(), array(), array()),
7 => array(array(array(), array()), array(array(array(array(array(array(), array())))))),
8 => array(null),
9 => 'not empty',
10 => "not empty",
11 => array(array("not empty")),
12 => array(array(),array("not empty"),array(array()))
);
foreach (testCase as key =>case ) {
echo "key is_multiArrayEmpty= ".is_multiArrayEmpty(case)."<br>";
}
?>
</body>
</html>
结果:
正如您在上面的示例中清楚地看到的,我们使用了多个嵌套在彼此内部的数组来检查嵌套数组与空函数配合使用的情况,可以看到直到第8个数组,它返回true或1,因为所有的数组都是空的或null,而在此之后则返回false。