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

来源:学生作业帮助网 编辑:作业帮 时间:2024/08/02 08:25:23
关于php中isset的疑问isset是判断参数是否存在,只有存在并且非空的情况下才返回true;那么为什么if(isset($_POST['username'])){\x05\x05\x05$where['username']=array('like',
xS]OA+Ī@ _h55]\TQD](ffvɿ;3KGJ_ڧ&;wν{&(M-29 H<.ΛގkxUB>^0{y|TZ!G<;H2׾"}lfvNx,+稾t5XDf=gtg_qQ{]z0}?'bwB(,EMFƜorg4 !?рUwK;Z0ŅYB-SCX_UKUs3k;"7EҾ- Va@-|qj 8U2@ Hӯ0j;څ`nXiaBS( +Oy%/$W[.P+?pA4(@V&Zg6swayU"* Xq( 2 }*vxP oð4 g0prxJDfqgA/:퇵$WtjǁU`)ff1o7]C# io^`AskpA㬹bT_$%-2;Kʊ'.qb<|x2絽ԖLrz9f\hQGJ Ѻ@ndUuht%3Qs0!J}^<#,R Hй[V1g FuR8Ɩ?q

关于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

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