提问者:小点点

使用逻辑运算符时,检查IF语句的哪些部分为false/true


有没有一种方法来检查if语句的哪个部分是FLASE/TRUE?

例如,我有两个变量$a和$b。 如果其中任何一个是空的,我希望停止我的函数,但是我也希望为每个返回一个特定的消息。 我的代码是:

if(empty($a) || empty($b)){
  if(empty($a)){echo('$a is empty');}
  if(empty($b)){echo ('$b is empty');}
  return;
}

实际上,我还有更多的变量,这只是一个例子。 我想知道是否有一种方法可以避免双重if检查和清理代码。 谢谢


共1个答案

匿名用户

没有什么好办法。 在您所描述的情况下,PHP不会计算括号中的所有内容。

如果empty($A)为真,php将不计算empty($B)。 因为OR无论如何都是真的。

您可以进行以下测试:

$a = 1; $b = 0;
if($a || $c) print "2";

这应该是显示PHP注意:未定义变量:c..,但它反而打印2

最好是分开评估

try{
    if(empty($a)) throw new \Exception('$a is empty');
    if(empty($b)) throw new \Exception('$b is empty');
} catch (\Exception $e) {
    print($e->getMessage());
}

相关问题