php中的isset()和empty()
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php中的isset()和empty()相关的知识,希望对你有一定的参考价值。
isset()和empty()的功能很类似,只能说是很类似,因为他们还是有不同点的,而他们的不同点还是挺明显的;
官方手册中对这两个的解释分别如下:
bool empty ( mixed
$var
) 判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于FALSE
,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。 bool isset ( mixed
$var
[, mixed $...
] ) 检测变量是否设置,并且不是 NULL
。 我经常在判断表单是否提交的时候用到这两个函数,但是有时候也是会搞混的。
比如我进行各种操作之前,得先判断一下是否有表单提交? 是否是用指定的方式(GET或者POST)来提交?提交的动作是什么(删除、显示、插入)? 这时我就得用到empty或者isset,说经常搞混,是因为,我最开始是这样用的,比如下面这段代码:
<form action="" method="post"> <input type="text" name="test" > <input type="submit" name="submit" value="delete"> <input type="submit" name="submit" value="update"> </form> <?php if(isset($_POST)){ echo "收到请求"; } else{ echo "未收到请求"; } ?>
其实这是错误的,因为$_POST是一个全局数组,就算$_POST数组为空,那$_POST也是存在的,无论是否有post请求,改代码都会输出“收到请求”。你可能会想到用isset判断submit的name属性是否为空,比如下面的代码:
<form action="" method="post"> <input type="text" name="test" > <input type="submit" name="submit" value="delete"> <input type="submit" name="submit" value="update"> </form> <?php if(isset($_POST[‘submit‘]) && $_POST[‘submit‘]==‘delete‘){ echo "收到删除请求"; } elseif(isset($_POST[‘submit‘]) && $_POST[‘submit‘]==‘update‘){ echo "收到更新请求"; } else echo "未收到请求"; ?>
还可以用下面这种方法实现:
<meta charset=‘utf-8‘> <form action="" method="post"> <input type="text" name="test" > <input type="submit" name="submit" value="delete"> <input type="submit" name="submit" value="update"> </form> <?php if( ! empty($_POST)){ $action=$_POST[‘submit‘]; switch($action){ case "delete":echo "delete"; break; case "update":echo "update";break; default:echo "非法提交"; } } else { echo "未收到请求"; } ?>
以上是关于php中的isset()和empty()的主要内容,如果未能解决你的问题,请参考以下文章