本文实例讲述了php中isset与empty函数的困惑与用法。分享给大家供大家参考,具体如下:
在学习php有一段时间之后,感觉自己的基础知识还是有点不牢固,有的问题就不怎么知道,比如就有一个,在判断一个变量是否为空的情况下,我就不知道是用isset()
还是empty()
。今天我就来分析该用哪个函数。
isset()
:用于判断一个函数是否被设置过,如果设置过就为true,否则就为false,但是有一个例外,就是如果一个变量被设置成null的话,此时也会返回的也是false。
1
2
3
4
5
6
|
<?php
$a = null;
var_dump(isset( $a )); //a变量已赋值,但是被设置成null,故返回false
var_dump(isset( $b )); //内存中不存在变量b,故返回false
var_dump(isset( $_GET [ 'id' ])); //如果$_GET['id']变量不存在,则返回false;如果$_GET['id']存在,则返回true
?>
|
empty()
:用于判断一个变量是否为空,如果是整形的0,浮点型的0.0,字符型的' ‘和'0',还有布尔型的false,NULL型的null,空数组等
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?php
$a = null;
var_dump( empty ( $a )); //true
$b = "" ;
var_dump( empty ( $b )); //true
$c = "0" ;
var_dump( empty ( $b )); //true
$c = 0;
var_dump( empty ( $b )); //true
$e = false;
var_dump( empty ( $e )); //true
$f = array ();
var_dump( empty ( $f )); //true
var_dump( empty ( $g )); //$g变量不存在,返回true
var_dump( empty ( $_GET [ 'id' ])); //如果$_GET['id']不存在,则返回true;如果存在,但是值是上述条件,则还是返回true。
?>
|
总结:如果是判断一个变量是否存在,可以用isset()
和empty()
;如果判断变量的值是否为空,那么就用empty()
。
注意:以前我在做项目的时候,出现了这样的一个问题,我把select下拉列表框的选中的值传到服务器,服务器从超全局数组中获取到了值,但是当时我不清楚isset()
和empty()
的区别,当时只知道他们都能判断变量是否存在,结果我用了empty()
函数,最后,就出现bug了,我用empty()
进行判断,把我传过来的变量的值为0的情况就给排除了。
所有在这里提醒大家,如果只是判断变量是否为空,最好还是用isset()
。
希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/baochao95/article/details/51723192