PHP $_POST['username']!=null这个还有必要写吗?isset是不是包含了呢?

if(isset($_POST['username'])&&$_POST['username']!=null){$where['username']=array('lik... if(isset($_POST['username']) && $_POST['username']!=null){
$where['username']=array('like',"%{$_POST['username']}%");
}
if(isset($_POST['sex']) && $_POST['sex']!=null){
$where['sex']=array('eq',$_POST['sex']);
}
展开
 我来答
wo吐八哥
2013-09-26 · 超过15用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:36万
展开全部
没有必要加,因为如果isset返回的结果是TRUE,那么后面的$_POST['sex']的值一定不是null。
追问
觉得你说的很有道理,我也这么认为的,但是不知道为什么那么多人强调要加不为空判断。
追答
这个根据实际情况定,不是必须要加的,如果判断了是否为空,那就没有必要用isset了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pzl7758
2013-09-26 · TA获得超过603个赞
知道小有建树答主
回答量:962
采纳率:100%
帮助的人:627万
展开全部
isset只是判断这个变量是否存在,并不能判断这个变量的值是否为空,如果要判断这个变量存不存在且不为空的话,直接这样写 if (empty($_POST['username'])) 就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniappf3apdprsvzlug
推荐于2016-10-28 · TA获得超过365个赞
知道小有建树答主
回答量:599
采纳率:28%
帮助的人:135万
展开全部
你的写法是对的,这两个最好同时加上
isset 只是判断这个变量是否存在 ,如果为空,它也算是存在的
所以再 加上不空为的判断是合理的。
追问
isset函数是检测变量是否设置。
谢谢。我想知道既用isset()又用!=null 判断,会不会冗余?isset是不是包含了!=null

格式:bool isset ( mixed var [, mixed var [, ...]] )

返回值:
若变量不存在则返回 FALSE
若变量存在且其值为NULL,也返回 FALSE
若变量存在且值不为NULL,则返回 TURE
我是看了这个才迷茫的
追答
你说的 这个已经说明了问题
isset它只判断 是否设置了,如果设置了,但设为空和没有设置,它返回的结果是一样的,所以分别是空,还是没有设置,所以需要再加!=NULL 来判断下
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
夏子華
2013-09-26 · TA获得超过1011个赞
知道小有建树答主
回答量:619
采纳率:100%
帮助的人:393万
展开全部
这是两个不通层级的判断,对于做技术的朋友来说,这个逻辑顺序是非常有必要的
追问
谢谢。我想知道既用isset()又用!=null 判断,会不会冗余?isset是不是包含了!=null
追答

请参考楼上的回答

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浮华out
2013-09-26 · TA获得超过101个赞
知道小有建树答主
回答量:138
采纳率:0%
帮助的人:118万
展开全部

可以统一用empty代替:

if(!empty($_POST['username'])){
  $username = trim($_POST['username']);  #过滤表单数据
  $where['username'] = array('like',"%{$username}%");
}
更多追问追答
追问
谢谢。我想知道既用isset()又用!=null 判断,会不会冗余?isset是不是包含了!=null
追答
如果非要用isset判断,那么得先判断isset,然后再判断!null.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式