2016-12-04 50 views
0

所以我有一个if语句,我不确定如何编写它是最好的方法。或者如果有适当的写作方式。我可以每次只使用& &,还是应该用more()来区分它们还是真的很重要,性能方面是否有所不同?如何在php中编写多个变量if语句

$a = 10; 
$b = 20; 
$c = 8; 
$d = 25; 
$e = ""; 
$f = "not blank"; 

// FIRST EXAMPLE 
if (!empty($e) && !empty($f) && $a <= $c && $b <= $d) 
{ 
    // do something here 
} 

OR

if ((!empty($e) && !empty($f)) && ($a <= $c && $b <= $d)) 
{ 
    // do something here 
} 
+2

如果您的所有条件都是“AND”,那么根本就不需要括号。如果你有'OR'条件结合'AND'条件,你可能需要一些括号。 – Qirel

回答

1

,只取决于你的需求。不需要时不要使用括号。它使代码更难阅读。在你的情况,你不应该使用括号,只是:

if (!empty($e) && !empty($f) && $a <= $c && $b <= $d) 
{ 
    // do something here 
} 

在这种情况下,是完全没必要,因为你只有&&使用多个支架。就性能而言,减少括号 - 减少解释者的工作。

+0

正如Qirel指出的那样,只有在使用||时使用额外的括号。用它? – Jayce

+0

是的,如果你正在使用||在大多数情况下,您将需要括号。就像数学(2 + 2)* 2 - 括号首先执行。 – mitch

0

你需要保持每个语句在不同的括号

if ((!empty($e) && (!empty($f) && ($a <= $c) && ($b <= $d)) 
{ 
// do something here 
} 
+0

这是完全错误的。 – Qirel

+0

你错了。看到我的答案。 – mitch

1

通常,您是否需要使用括号取决于您在if语句条件中使用的运算符的优先级。有关更多详细信息,请参阅official PHP documentation

就个人而言,在if语句的情况下(以及在合理的范围内的代码)我首先倾向于可读性。

例如,用下面的if语句你建议:

if (!empty($e) && !empty($f) && $a <= $c && $b <= $d) 
{ 
    // do something here 
} 

有人谁是不熟悉的代码,它可以首先需要更长的时间,看看发生了什么。有很多方法可以解决这个问题。一个例子是将条件拆分为单独的if语句,并且如果它适合于您的逻辑,可能会抛出异常。在这种情况下,您的例子可以成为这样的事情:

if (empty($e) || empty($f)) 
{ 
    // throw exception as one or both of $e or $f is empty 
} 

if ($a <= $c && $b <= $d) 
{ 
    // do something here 
} 

的例子可能不是逻辑上是正确,但希望它有助于投掷的东西不同的观点。