有没有一种方法来检查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检查和清理代码。 谢谢
没有什么好办法。 在您所描述的情况下,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());
}