2011-08-03 101 views
3

請原諒我,如果這是常見的事情,但我不知道我應該如何去做。PHP:檢查3個變量是否相同的最佳方法?

我想看看三個變量是彼此相同

我想我能做到這一點:

<?php 
if ($one == $two == $three) { 
    echo "they all match."; 
} else { 
    echo "one of these variables do not match."; 
} 
?> 

,但我想這是不可能的。

這是否有語法?或者我必須單獨檢查/ & &或|| ?

我知道,單獨檢查它們會給出更多的準確性(並且可能是更好的做法),但是對於這種特定情況,哪一個不匹配並不重要。

+1

在面試問題一般出現:如何判斷一個三角形爲正三角形 – basarat

回答

7

我會使用:

if ($one === $two && $two === $three) 
    echo "they all match." 
else 
    echo "one of these variables do not match."; 
  • #1 ==#2(無類型強制)
  • #2 ==#3(無類型強制)
  • ∴#1 == #2 ==#3
+0

謝謝你在你的答案底部的解釋,我得到了它,當你說,這和有一個「啊,哈!」時刻,但是你用奇妙的方式說明了這一點,這會使它更容易記住。謝謝。 (另外,最快的答案。Gratz。=)) – Partack

4

你有你使用&&。幸運的是,通過==的傳遞屬性,您只需檢查三個:)中的兩個。

if ($one == $two && $two == $three) { 
    echo "they all match."; 
} else { 
    echo "one of these variables do not match."; 
} 

想要「做我的意思」的語言嗎?使用Python。

>>> a = 'foo' 
>>> b = 'foo' 
>>> c = 'foo' 
>>> a == b == c 
True 
+0

哈哈哈,最後一個片段看起來很有趣。我將學習python這些天之一,只是不知道什麼時候..我聽說過很多好東西^ __ ^感謝您的快速回復=) – Partack

+3

Python的很多'<3'。當然你也可以用'x

2

不認爲你可以做到這一點那麼簡單:

if ($one == $two && $two == $three) 
+0

似乎這畢竟是一件普通的事情。哈哈。感謝您的快速回復=) – Partack

6

這裏有一個替代的解決方案可能會有所幫助。如果你的變量已經在一個數組中,它將會特別有用。

$a = array($one, $two, $three); 

if(count(array_unique($a)) == 1){ 
    // all match 
} 
else { 
    // some items do not match 
} 
+0

哦,「數組唯一」?真棒。謝謝你,它會在我的腳本後來派上用場=) – Partack

+1

+1,有趣的解決方案:) –

相關問題