Home > Article > Backend Development > 关于PHP运算符的一点疑惑
我在手册上看见的是
&& 与 $x && $y 如果 $x 和 $y 都为 true,则返回 true。|| 或 $x || $y 如果 $x 和 $y 至少有一个为 true,则返回 true。
你怎么知道你不是断章取义了呢
逻辑运算符的 用法 手册上没什么问题呢.
至于你举得例子 你确定是你说的意思吗?
你要举例说你在哪里看到了,粘帖代码让大家看一下
你要举例说你在哪里看到了,粘帖代码让大家看一下
if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) { exit('Access Denied');}
大家不信的话 可以在discuz 里面看看相关的php文件 大跌眼镜
php不会有自定义运算符的功能吧
应该不会有反着用的~
又比如 我要判断2个表单是否都填写
if(empty($_POST['a']) || empty($_POST['b'])){
if(empty($_POST['a']) && empty($_POST['b'])){
对不起 上面掉了个括号 呵呵 大家明白这个意思就行了
又比如 我要判断2个表单是否都填写
if(empty($_POST['a']) || empty($_POST['b'])){
if(empty($_POST['a']) && empty($_POST['b'])){
if(empty($_POST['a']) || empty($_POST['b']))
表述的是只要 $_POST['a'] 和 $_POST['b'] 中有一个为空(当然包括两个都为空)表达式就成立
if(empty($_POST['a']) && empty($_POST['b']))
表述的是有 $_POST['a'] 和 $_POST['b'] 两个都为空,表达式才成立
显然两者是不同的,虽然都有 两个都为空 的表述
你得根据你的业务需要选择符合要求的表达式
又比如 我要判断2个表单是否都填写
if(empty($_POST['a']) || empty($_POST['b'])){
if(empty($_POST['a']) && empty($_POST['b'])){
if(empty($_POST['a'])) || empty($_POST['b'])){ echo "对不起 表格填写不全";}else{ echo "发布成功";}
if(empty($_POST['a'])) && empty($_POST['b'])){ echo "对不起 表格填写不全";}else{ echo "发布成功";}
你自己的逻辑问题:你认为 c=a&&b; 与 !a或!b =c 相等?
if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
exit('Access Denied');
}
这个是表示,a为空或b为空都显示表格填写不全
if(empty($_POST['a'])) || empty($_POST['b'])){
echo "对不起 表格填写不全";
}else{
echo "发布成功";
}
这个是表示 a和b同时为空才显示表格填写不全
if(empty($_POST['a'])) && empty($_POST['b'])){
echo "对不起 表格填写不全";
}else{
echo "发布成功";
}
逻辑上两个就不同了,不明白为什么楼主觉得有问题呢,这些是按需求来做的吧。