PHP-在PHP中,对于变量的检查能用empty代替isset么?
我翻看了很多资料,感觉应该是可以代替的。但是却没有看到一篇权威的资料有这个知识点的总结。望高手赐教。我的感觉是可以的。我们探讨的是isset和empty的替代问题,因为我们经常在代码中这样写:
if(isset($a)){
if(!empty($a)){
dosomething();
}
};
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
empty表示,当一个变量值为0或者为''或者为null,或者只是申明了,并且没有任何值,那么在使用empty函数时,它都表示为空,
而isset它只表示,如果你这个变量申明了,不管它是不是0或null,或'',它都是存在的,
is_null ,只有在值为null的时候,它才表示真。
我一般都会这样用如:
if(isset($_GET['id']) && !empty($_GET['id'])) .....
个人感觉可以使用empty代替isset
不能!
isset是检查这个变量是否被声明
empty是检查这个变量内容是否为语义上的空
这个是有区别的,不能相互代替!
isset是为了判断变量是否被声明
empty是为了判断已经声明的变量是否为 0 或者 null
一个简单的例子:
//判断该引导页面是否打开过,如果打开过直接跳转至首页!
//使用cookie实现
if(isset($_COOKIE['history']))
{
header("Location:index.php");
}
else
{
//设置cookie,跳转至引导页面
setcookie("history",md5(time()),time()+86400)
header("Location:guide.php");
}
你可以自己写个页面使用empty看看两者能否替换?
你可以用下面的例子试试:
if(!isset($a)) $a = 1;
echo $a;
if(!empty($b)) $b = 1;
echo $b;