2014-02-08 59 views
0

有沒有簡略的版本檢查是否有多個變量具有相同的值請?而不是我如何使IF語句的快捷鍵?

: -

if ($a="valid") 
{do stuff;} 
if ($b="valid") 
{do stuff;} 
if ($c="valid") 
{do stuff;} 
if ($d="valid") 
{do stuff;} 

有一樣的東西: -

if ($a or $b or $c or $d = "valid") 
{do stuff;} 
+0

是一個錯字還是你在IF語句中賦值?如果是的話,如果($ a = $ b = $ c ='valid')... lol – Craftein

+0

typo:D ...應該是if($ a ==「valid」)...我的不好 –

回答

3

約翰·孔德的解決方案是一個很好的解決方案。如果你想堅持的基本字符串比較,有點像在您的示例代碼,那麼你可以做:

if ($a == 'valid' or 
    $b == 'valid' or 
    $c == 'valid' or 
    $d == 'valid') { 
    // DO STUFF 
} 

東西要記住,基於我從你的示例代碼注意:在做比較的在PHP中平等,請使用==而不是=。單個=用於分配,而雙==用於比較。

+0

感謝球員...我使用這種風格,因爲我實際上使用<>而不是== –

+0

@Blackwolf - 很高興我可以幫助。感謝您接受我的回答。儘管如此,我仍然樂意接受John Conde的解決方案 - 這是一個很好的解決方案。 –

7

只要把你要檢查到一個數組,並使用in_array()檢查一次全部變量:

if (in_array('valid', array($a, $b, $c, $d))) { 
    do stuff; 
} 
+1

是嗎快速? :( – kero

+8

這就是我的女朋友一直問我:/ –

+0

輝煌,謝謝:) –

1

你可以提取一個函數做比較,並有:

if (check($a) || check($b) ...) 

它不像約翰提出的那樣性感(不管他的女朋友說什麼)我不得不承認。

0

可以呀,是這樣的:組建一個數組,然後使用in_array

if (($a || $b || $c || $d) == "valid") 
+0

糾正我,如果我錯了,但這似乎是和而不是或雖然 –

+0

我沒有它,這意味着(「 aaa「&&」bbb「&&」valid「)將等於」有效「?還有「aaa」和「bbb」? –

+1

[你確定這有用嗎?](http://codepad.viper-7.com/Z0NOQM)我認爲[你的意思是使用'||'](http://codepad.viper-7.com/ef3osu ); –

1

如果($一個== '有效' || $ B == '有效' || $ C == '有效' || $ d == '有效'){// DO STUFF}

這將是最好的,因爲如果第一個條件是真的,那麼不需要檢查休息。