在if-else PHP语句中使用和/或
在if-else-PHP语句中如何使用“AND/OR”?是不是: 1) 及 2) 或在if-else PHP语句中使用和/或,php,if-statement,Php,If Statement,在if-else-PHP语句中如何使用“AND/OR”?是不是: 1) 及 2) 或 是&&还是|与C类似。这里有两个问题 使用==进行比较。您已经使用了用于分配的= 使用&&表示“和”,使用|表示“或”和和或将起作用,但它们是非常规的 和和或只是&和|的语法糖,就像在JavaScript或其他C风格的语法语言中一样 它比它们的C风格的等价物要好。是的。答案是肯定的。 但有两件事: 许多程序员更喜欢&和|而不是和和或,但它们的工作原理是一样的(优先安全) $status='clear'可能
是
&&
还是|
与C类似。这里有两个问题
==
进行比较。您已经使用了用于分配的=
&&
表示“和”,使用|
表示“或”和
和或
将起作用,但它们是非常规的和
和或
只是&
和|
的语法糖,就像在JavaScript或其他C风格的语法语言中一样
它比它们的C风格的等价物要好。是的。答案是肯定的。
但有两件事:
- 许多程序员更喜欢
和&
而不是|
和
和
或
,但它们的工作原理是一样的(优先安全)
可能应该是$status='clear'
<代码>=是赋值,$status=='clear'
是比较=
if ($status = 'clear' && $pRent == 0) {
mysql_query("UPDATE rent SET dNo = '$id', status = 'clear', colour = '#3C0' WHERE rent.id = $id");
}
用于或您使用
if ($status = 'clear' || $pRent == 0) {
mysql_query("UPDATE rent SET dNo = '$id', status = 'clear', colour = '#3C0' WHERE rent.id = $id");
}
我想我在这里有点困惑。:)但似乎没有其他人 你是在问在这个场景中使用哪一个?如果是,则是正确答案 如果您询问操作员的工作情况,则
在php中,&&&和或,| |的工作方式相同。如果您是编程新手,并且php是您最早使用的语言之一,我建议您使用and和OR,因为它可以提高可读性,并在您回头查看时减少混乱。但是如果您已经熟悉任何其他语言,那么您可能已经熟悉了&&和| |运算符。有点晚了,但没关系……
问题是“你如何使用…?”简短的回答是你做得正确
另一个问题是“你什么时候使用它?”
我用
&
代替,
和|
代替或
$a = 1
$b = 3
现在,
在这种情况下,结果为“FALSE”,因为B不是1,那么如果
if ($a == 1 || $b == 1) { TRUE } else { FALSE }
这将返回“TRUE”,即使B仍然不是我们要求的值,还有另一种不使用OR/| | |的方法返回TRUE,那就是XOR
if ($a == 1 xor $b == 1) { TRUE } else { FALSE }
在这种情况下,我们只需要一个变量为真,但不需要两者都为真。如果两者都为真,结果将为假
我希望这有助于
更多信息请访问:
“和”在我的PHP代码中不起作用
可能是服务器版本
“&&”很好。这里的答案中有一些开玩笑的、误导性的评论,甚至有部分不正确的信息。我想尝试改进它们:
首先,正如一些人指出的,您的代码中有一个与问题相关的bug:
if ($status = 'clear' AND $pRent == 0)
应该是(注意第一部分中的=
而不是=
):
在这种情况下,功能等同于
if ($status == 'clear' && $pRent == 0)
第二个,请注意这些运算符(和&&&|
)是短路运算符。这意味着,如果可以从第一个表达式确定答案,则永远不会计算第二个表达式。同样,这对于上面的调试行并不重要,但在将这些运算符与赋值组合时,这一点非常重要,因为
第三个,和
与和&&|
之间的真正区别在于它们之间的区别。特别重要的是,&&&&|
比赋值运算符具有更高的优先级(=+=-=*=***=/=.=%=&=^=
),而和/或
比赋值运算符具有更低的优先级。因此,在结合使用赋值和逻辑求值的语句中,选择哪一个很重要
<?php
$val1 = rand(1,4);
$val2=rand(1,4);
if ($pars[$last0] == "reviews" && $pars[$last] > 0) {
echo widget("Bootstrap Theme - Member Profile - Read Review",'',$w[website_id],$w);
} else { ?>
<div class="w100">
<div style="background:transparent!important;" class="w100 well" id="postreview">
<?php
$_GET[user_id] = $user[user_id];
$_GET[member_id] = $_COOKIE[userid];
$_GET[subaction] = "savereview";
$_GET[ip] = $_SERVER[REMOTE_ADDR];
$_GET[httpr] = $_ENV[requesturl];
echo form("member_review","",$w[website_id],$w);?>
</div></div>
修改了以下示例:
将计算为true
,并将该值赋给$e
,因为|
的运算符优先级高于=
,因此它的计算结果基本上如下:
$e = (false || true);
($e = false) or true;
然而
$e = false or true;
将false
分配给$e
(然后执行或
操作并计算true
),因为=
具有比或
更高的运算符优先级,基本上计算如下:
$e = (false || true);
($e = false) or true;
事实上,这种模糊性甚至存在,这使得许多程序员总是使用&&&&&|
,然后一切都像人们在C语言中所期望的那样清晰地工作,即先进行逻辑运算,然后进行赋值
有些语言(如Perl)经常使用类似以下格式的这种构造:
$connection = database_connect($parameters) or die("Unable to connect to DB.");
从理论上讲,这会将数据库连接分配给$connection
,或者如果该操作失败(在这种情况下,我们假设函数将返回值为false
),它将以错误消息结束脚本。由于短路,如果数据库连接成功,则永远不会计算die()
一些允许这种构造的语言直接禁止在条件/逻辑语句(如Python)中赋值,以从另一个角度消除不确定性
PHP同时允许这两个选项,所以您只需了解一下这两个选项,然后按照自己的意愿编写代码,但希望您能以某种方式保持一致
每当有疑问时,只需加上一组额外的括号,即可消除所有歧义。这些将始终是相同的:
$e = (false || true);
$e = (false or true);
有了这些知识,我更喜欢使用和/或,因为我觉得这样可以使代码更具可读性。我只是有一条规则,不能把作业和逻辑评估结合起来。但在这一点上,这只是一种偏好,在这里,一致性比选择哪一方更重要。
<?php
$val1 = rand(1,4);
$val2=rand(1,4);
if ($pars[$last0] == "reviews" && $pars[$last] > 0) {
echo widget("Bootstrap Theme - Member Profile - Read Review",'',$w[website_id],$w);
} else { ?>
<div class="w100">
<div style="background:transparent!important;" class="w100 well" id="postreview">
<?php
$_GET[user_id] = $user[user_id];
$_GET[member_id] = $_COOKIE[userid];
$_GET[subaction] = "savereview";
$_GET[ip] = $_SERVER[REMOTE_ADDR];
$_GET[httpr] = $_ENV[requesturl];
echo form("member_review","",$w[website_id],$w);?>
</div></div>
我用“&&”替换了“else”,所以两者都放在。。。啊这很少见,但也许
$e = (false || true);
$e = (false or true);
<?php
$val1 = rand(1,4);
$val2=rand(1,4);
if ($pars[$last0] == "reviews" && $pars[$last] > 0) {
echo widget("Bootstrap Theme - Member Profile - Read Review",'',$w[website_id],$w);
} else { ?>
<div class="w100">
<div style="background:transparent!important;" class="w100 well" id="postreview">
<?php
$_GET[user_id] = $user[user_id];
$_GET[member_id] = $_COOKIE[userid];
$_GET[subaction] = "savereview";
$_GET[ip] = $_SERVER[REMOTE_ADDR];
$_GET[httpr] = $_ENV[requesturl];
echo form("member_review","",$w[website_id],$w);?>
</div></div>