Home >php教程 >php手册 >php使用empty()函数要注意事项

php使用empty()函数要注意事项

WBOY
WBOYOriginal
2016-05-25 16:55:22942browse
使用empty()判断数字0的时候,empty()也会返回true,就是说如果你的变量有可能出现数字0这个变量,要使用isset()来判断会好一些!!

从表面上看,很容易误解empty()函数是判断字符串是否为空的函数,其实并不是,我也因此吃了很多亏。

empty()函数是用来测试变量是否已经配置。若变量已存在、非空字符串或者非零,则返回 false 值;反之返回 true值。所以,当字符串的值为0时,也返回true,就是执行empty内部的语句。这就是陷阱。

 代码如下 复制代码

$a=array("1"=>"ddf");
var_dump(empty($a));///boolean false
$b=0;
var_dump(empty($b));  ///boolean true

劝告各位,千万注意使用empty()函数。

判断字符串是否为空,可以这么判断: if ($value=="") ...
    * 格式:bool empty ( mixed var )
    * 功能:检查一个变量是否为空
    * 返回值:
    * 若变量不存在则返回 TRUE
    * 若变量存在且其值为""、0、"0"、NULL、、FALSE、 array()、var $var; 以及没有任何属性的对象,则返回 TURE
    * 若变量存在且值不为""、0、"0"、NULL、、FALSE、 array()、var $var; 以及没有任何属性的对象,则返回 FALSE
    * 版本:PHP 3, PHP 4, PHP 5

从表面上看,很容易误解empty()函数是判断字符串是否为空的函数,其实并不是,我也因此吃了很多亏。 empty()函数是用来测试变量是否已经配置。若变量已存在、非空字符串或者非零,则返回 false 值;反之返回 true值。所以,当字符串的值为0时,也返回true,就是执行empty内部的语句。这就是陷阱。如: 假设 $value = 0; 则empty($value)=false。劝告各位,千万注意使用empty()函数。判断字符串是否为空,可以这么判断: if ($value=="") ... 格式:bool empty ( mixed var ) 功能:检查一个变量是否为空 返回值:若变量不存在则返回 TRUE 若变量存在且其值为""、0、"0"、NULL、、FALSE、array()、var $var; 以及没有任何属性的对象,则返回 TURE 若变量存在且值不为""、0、"0"、NULL、、FALSE、array()、var $var; 以及没有任何属性的对象,则返回 FALSE 版本:PHP 3, PHP 4, PHP 5


当你使用empty检查一个函数返回的结果时会报错:Fatal error: Can't use function return value in write context

例如:

 代码如下 复制代码

echo empty(strlen('be-evil.org'));

到PHP手册里面查看,在empty函数描述的地方有以下文字:

Note: empty() only checks variables as anything else will result in a parse error. In other words, the following will not work: empty(trim($name)).

empty() 只检测变量,检测任何非变量的东西都将导致解析错误!

因此,我们不能拿empty来直接检测函数返回的值,上面例子的解决方案如下:

 代码如下 复制代码

$length = strlen('be-evil.org');

echo empty($length);
?>



本文地址:

转载随意,但请附上文章地址:-)

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn