2011-08-03 7 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(NOタイプ強制)
  • #2 ==#3(NOタイプ強制)
  • ∴#1 == #2 ==#3
+0

は、あなたの答えの下部に説明をありがとう伝えるために、私はそれを得た「ああヘクタールを!」あなたはそれを覚えやすいようにすばやく説明しました。ありがとうございました。 (また、最も速い答え。Gratz。=)) – Partack

4

あなたは&&を使用しています。幸運にも、==の推移的なプロパティによって、:)のうち2つをチェックするだけです。

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

haha​​ha、その最後のスニペットは楽しく見えます。私は最近のpythonの1つを学ぶつもりですが、いつ知っているのでしょうか?私はそれについてたくさんの良いことを聞いてきました^ __ ^あなたの素早い応答のために=) – Partack

+3

多くの '<3'はPythonです。もちろん、 '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、面白い解決策:) –

関連する問題