关于php中isset的疑问isset是判断参数是否存在,只有存在并且非空的情况下才返回true;那么为什么if(isset($_POST['username'])){\x05\x05\x05$where['username']=array('like',"%$_POST[username]%");\x05\x05\x05}\x05\x05if(isse

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/09 19:59:43
关于php中isset的疑问isset是判断参数是否存在,只有存在并且非空的情况下才返回true;那么为什么if(isset($_POST['username'])){\x05\x05\x05$where['username']=array('like',

关于php中isset的疑问isset是判断参数是否存在,只有存在并且非空的情况下才返回true;那么为什么if(isset($_POST['username'])){\x05\x05\x05$where['username']=array('like',"%$_POST[username]%");\x05\x05\x05}\x05\x05if(isse
关于php中isset的疑问
isset是判断参数是否存在,只有存在并且非空的情况下才返回true;
那么为什么
if(isset($_POST['username'])){
\x05\x05\x05$where['username']=array('like',"%$_POST[username]%");\x05
\x05\x05}
\x05\x05if(isset($_POST['sex'])){
\x05\x05\x05$where['sex']=array('eq',$_POST['sex']);\x05
\x05\x05}
\x05\x05
这两条语句,在前台都没有设置内容的时候,能够进入第一条,不能进入第二条,关键是,当时两个$_POST都是空值呀
也不是顺序的问题
更改顺序之后 还是只能进入$_POST['username']的语句

关于php中isset的疑问isset是判断参数是否存在,只有存在并且非空的情况下才返回true;那么为什么if(isset($_POST['username'])){\x05\x05\x05$where['username']=array('like',"%$_POST[username]%");\x05\x05\x05}\x05\x05if(isse

推荐你使用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

值为数字的情况要另行判断,以防出错.