PHP: лучший способ проверить, идентичны ли 3 переменные? - PullRequest
3 голосов
/ 03 августа 2011

Простите, если это обычное дело, но я не уверен, как мне это сделать.

Хотелось бы посмотреть, идентичны ли три переменные друг другу

Я думал, что смогу сделать это:

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

Но я думаю, что это невозможно.

Есть ли синтаксис для этого? или я должен проверить их индивидуально / с && или ||

Мне известно, что проверка их по отдельности даст большую точность (и, вероятно, это лучшая практика), но для этой конкретной ситуации не имеет значения, какая из них не соответствует.

Ответы [ 4 ]

8 голосов
/ 03 августа 2011

Я бы использовал:

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
6 голосов
/ 03 августа 2011

Вот альтернативное решение, которое может быть полезным. Это будет особенно полезно, если ваши переменные уже находятся в массиве.

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

if(count(array_unique($a)) == 1){
  // all match
}
else {
  // some items do not match
}
4 голосов
/ 03 августа 2011

Вы используете &&.К счастью, благодаря транзитивному свойству == вам нужно только проверить два из трех :).

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
3 голосов
/ 03 августа 2011

Не думаю, что вы можете сделать это проще, чем:

if ($one == $two && $two == $three)
...