检查变量是否为空的两种不同方法

时间:2011-05-08 14:18:18

标签: php variables

之前有一个问题php echo if two conditions are true,当我回答if(!empty($variable)){}时,大多数人回答使用语句if($variable != ''){}检查变量是否为空。我的问题是,为什么大多数人回答if(!empty($variable)){}if($variable != ''){}期望可读性之间有什么区别?可读性是我目前唯一的区别。

谢谢, ATNO

2 个答案:

答案 0 :(得分:2)

R ead the manual

Returns FALSE if var has a non-empty and non-zero value.

The following things are considered to be empty:

    * "" (an empty string)
    * 0 (0 as an integer)
    * 0.0 (0 as a float)
    * "0" (0 as a string)
    * NULL
    * FALSE
    * array() (an empty array)
    * var $var; (a variable declared, but without a value in a class)

注意:

注意,如果“0”(零作为字符串),0(零作为整数)和-0(零作为整数)返回true,“ - 0”(减零作为字符串(是的,我已经有一些客户将-0写入表单字段))返回false。在使用empty()函数进行测试之前,需要先转换变量:

<?php
$var = "-0";
echo empty($var);  // returns false
$var = (int) $var; // casts $var as an integer
echo empty($vat);  // returns true
?>

答案 1 :(得分:1)

如果变量为0-Integer,NULL,FALSE,空数组(查看返回值),

empty也会将变量视为空。您只是检查它是否不是空字符串。如果变量是例如,则检查将返回true。设置为(布尔值)FALSE。