PHP是否停止关注一个';或';(| |)满足了吗?
这是一个简单的问题,不需要太多的PHP是否停止关注一个';或';(| |)满足了吗?,php,if-statement,Php,If Statement,这是一个简单的问题,不需要太多的if/else语句 例如,如果我有这样一个查询: if ($success1=$db->query('SELECT * FROM `foo`;') || $success2=$db->query('SELECT * FROM `bar`;')) { ... } 当第一次查询成功或失败时,它会停止检查吗?您所指的是短路。是的,php使用短路。使用AND(&&&)如果条件中的第一个检查失败,它将不会检查第二个。这同样适用于或(| |)。如果第一次检
if/else
语句
例如,如果我有这样一个查询:
if ($success1=$db->query('SELECT * FROM `foo`;') || $success2=$db->query('SELECT * FROM `bar`;')) {
...
}
当第一次查询成功或失败时,它会停止检查吗?您所指的是短路。是的,php使用短路。使用AND(&&&)如果条件中的第一个检查失败,它将不会检查第二个。这同样适用于或(| |)。如果第一次检查成功,它将不会查看第二条语句 请参见以下帖子进行验证: 这非常有用的一个例子是除以零。在第一次检查中确定分母是否为零,然后在第二次检查中进行除法。订单很重要。如果分母为零,它将跳过第二次检查,并且永远不会被零除
如果($x!=0&&10/$x>3)
如果第一个是真的,那么它将不需要检查语句中的任何其他内容,以便继续执行。如果不是,则代码如下:
if(isset($var)&&$var==1)
不会工作,因为它会抛出一个未定义的错误。一旦它看到第一个值为false,它就会停止语句的其余部分。当您使用两个已知值尝试它时发生了什么?是的,如果第一个查询返回可以计算为true的值,它就会停止。您意识到每个查询的成功意味着运行时不会出错,不管它是否实际返回数据。。。。但是像这样执行数据库查询并不是一个好的实践,请检查第一个例子我与@MarkBaker在这方面的合作:这有很多问题。您的示例代码未通过几个“最佳实践”测试。您可以缩短代码,但也会降低代码质量<代码>$shorter!==$更好。