使用';和';和';或';在if/else PHP语句中
我试图在IF/ELSE语句中同时使用AND和OR语句,但无法达到预期效果 我想实现的是,如果'a'或'b'的值为'1',但'c'和'd'都必须为1,那么我得到'Yes' 我所有的尝试都给了我“是”或者没有成功(空白屏幕)使用';和';和';或';在if/else PHP语句中,php,Php,我试图在IF/ELSE语句中同时使用AND和OR语句,但无法达到预期效果 我想实现的是,如果'a'或'b'的值为'1',但'c'和'd'都必须为1,那么我得到'Yes' 我所有的尝试都给了我“是”或者没有成功(空白屏幕) 谢谢。为了确保正确完成评估顺序,您需要添加括号,如数学: if ( ( ($a == "1") || ($b == "1") ) && ($c == "1") && ($d == "1")) { ^
谢谢。为了确保正确完成评估顺序,您需要添加括号,如数学:
if ( ( ($a == "1") || ($b == "1") ) && ($c == "1") && ($d == "1")) {
^ ^
这样的话,比如说:
$a = 1;
$b = 2;
$c = 1;
$d = 2;
第一个括号的计算结果为true | | false
。最终结果将为true
现在您有了true&&($c==“1”)&&($d==“1”)
$c=1
,因此,下一次评估将是true&&true&($d==1)
$d=2
,因此下一轮将是true&&true&&false
,在本例中,最终结果将是false
,您需要添加括号,以确保正确完成评估顺序,如数学:
if ( ( ($a == "1") || ($b == "1") ) && ($c == "1") && ($d == "1")) {
^ ^
这样的话,比如说:
$a = 1;
$b = 2;
$c = 1;
$d = 2;
第一个括号的计算结果为true | | false
。最终结果将为true
现在您有了true&&($c==“1”)&&($d==“1”)
$c=1
,因此,下一次评估将是true&&true&($d==1)
$d=2
,因此下一轮将是true&&true&&false
,在本例中,最终结果将是false首先计算等式运算符,然后是&&&,然后是| |。括号的计算将先于任何其他内容,因此添加括号可以更改顺序
检查答案将首先计算相等运算符,然后&&,然后| |。括号的计算将先于任何其他内容,因此添加括号可以更改顺序
检查答案您需要添加括号
为什么?
因为先计算内括号,然后再计算外括号。举个例子:
((1==1&(2==2))| | 3==3)
首先评估什么?2==2,然后是1==1,然后是3==3。在你的if条件下,因为你混合了AND's和OR's,你不会得到想要的效果
(($a==“1”)|($b==“1”)&&($c==“1”)&($d==“1”))
应该对你有用。事实上,您可以这样做,使它看起来更好:
($a==1 | |$b==1)和&$c==1和&$d==1)
因为不必在引号中加1,即:“1”
。PHP的真实性将评估1==“1”
为真。但是,如果要检查包含1的实际字符串,则可以使用=
运算符
$a = 1;
$b = "1"
$a == "1"; // true
$b == 1; // true
$a === "1"; // false
$b === "1"; // true
但是,有关更多信息,请转到此处:您需要添加括号
为什么?
因为先计算内括号,然后再计算外括号。举个例子:
((1==1&(2==2))| | 3==3)
首先评估什么?2==2,然后是1==1,然后是3==3。在你的if条件下,因为你混合了AND's和OR's,你不会得到想要的效果
(($a==“1”)|($b==“1”)&&($c==“1”)&($d==“1”))
应该对你有用。事实上,您可以这样做,使它看起来更好:
($a==1 | |$b==1)和&$c==1和&$d==1)
因为不必在引号中加1,即:“1”
。PHP的真实性将评估1==“1”
为真。但是,如果要检查包含1的实际字符串,则可以使用=
运算符
$a = 1;
$b = "1"
$a == "1"; // true
$b == 1; // true
$a === "1"; // false
$b === "1"; // true
但是,有关更多信息,请转到此处:它将始终回显Yes,因为PHP解释器将AND操作放在OR操作之前
所以你的if语句解释如下:
If
a=1或b=1,c=1,d=1
然后
回音“是”
其他的
回显“否”
这就是为什么您总是得到一个yes..它总是回显一个yes,因为PHP解释器将AND操作放在OR操作之前
所以你的if语句解释如下:
If
a=1或b=1,c=1,d=1
然后
回音“是”
其他的
回显“否”
这就是为什么你总是得到“是”的答案。用括号的方法与数学中的方法相同。顺便说一句,等式表达式周围的括号其实并不需要。用括号的方法与数学中的方法相同。顺便说一句,等式表达式周围的括号其实并不需要。这就是问题所在!谢谢@Felippe将在允许的情况下接受答案(11分钟内!)这就是问题所在!谢谢@Felippe将在允许的情况下接受答案(11分钟内!)