关于php中isset的疑问
isset是判断参数是否存在,只有存在并且非空的情况下才返回true;那么为什么if(isset($_POST['username'])){$where['usernam...
isset是判断参数是否存在,只有存在并且非空的情况下才返回true;
那么为什么
if(isset($_POST['username'])){
$where['username']=array('like',"%$_POST[username]%");
}
if(isset($_POST['sex'])){
$where['sex']=array('eq',$_POST['sex']);
}
这两条语句,在前台都没有设置内容的时候,能够进入第一条,不能进入第二条,关键是,当时两个$_POST都是空值呀
也不是顺序的问题
更改顺序之后 还是只能进入$_POST['username']的语句 展开
那么为什么
if(isset($_POST['username'])){
$where['username']=array('like',"%$_POST[username]%");
}
if(isset($_POST['sex'])){
$where['sex']=array('eq',$_POST['sex']);
}
这两条语句,在前台都没有设置内容的时候,能够进入第一条,不能进入第二条,关键是,当时两个$_POST都是空值呀
也不是顺序的问题
更改顺序之后 还是只能进入$_POST['username']的语句 展开
2个回答
展开全部
推荐你使用var_dump,看看数组中有哪些下标:
var_dump($_POST);
建议同时检查一下if条件里的值,看它是否为true
var_dump(isset($_POST['username']));
有可能是这样,$_POST['username'] == '',是一个空字符串,但是isset只判断下标是否存在。建议使用empty来检查:
if (empty($_POST['username'])) {
// ...
}
empty()为true的条件是,下标存在,且不为空值。
但也要注意:
$_POST['number'] = 0;
var_dump($_POST['number']); // true
值为数字的情况要另行判断,以防出错。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询