2016-12-17 130 views
-5

我知道這可能是一個「noob問題」,但我想知道其中的命題之一,我應該使用:

1. if(!isset($foo) OR (isset($foo) AND $foo == $bar)) {} 
2. if(!isset($foo) OR $foo == $bar) {} 

的事情是,我問,如果在「或」條件自然是說「$foo存在,你陳檢查他的價值,如果你想要」或如果你必須指定它可能存在(與isset東西)。

謝謝你的答案,對不起我的英語appromixative .... :)

+0

第一個是多餘的,所以使用#2。 – Ryan

+0

哪一個更好。您沒有正當理由複製條件的複製條件,或者沒有正當理由複製條件的複製條件? – PeeHaa

+0

@Ryan Thx!所以我認爲,條件中的'或'足以說變量$ foo存在。 @PeeHaa,我可以有更多的解釋嗎?爲什麼說沒有好的理由?在我的if條件中,我必須檢查一個變量是否不存在,或者如果是這樣,它就等於一個特定的值...你會如何做到這一點? – Vae

回答

1

ORAND||,並且&&所有執行short-circuit evaluationOR||評估他們的論點從左到右,直到他們達到第一個真值,然後返回。 AND&&從左到右評估它們的參數,直到它們達到第一個虛假值並返回它。在這兩種情況下,他們都不評估任何剩餘的論點。

所以你應該使用#2,因爲當!isset($foo)爲真時,它永遠不會評估第二個表達式,因此不需要再次檢查isset($foo)

相關問題