2016-12-04 49 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 
} 

的例子可能不是邏輯上是正確,但希望它有助於投擲的東西不同的觀點。