2011-08-03 98 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,有趣的解决方案:) –

相关问题