2010-08-10 5 views
0

Есть более простой способ, чтобы написать следующий запрос (чтобы увидеть, если любой из наших трех переменных равны одному и тому же значению):если это ИЛИ ИЛИ это == это

if ($firstvariable == 'ourvalue' OR $secondvariable == 'ourvalue' OR $thirdvariable == 'ourvalue') 
+1

Очень любопытно, что эти другие люди отправили объективно более сложные решения на ваш вопрос об простоте ... –

+0

@Mike Я не думаю, что эти решения сложнее, я обычно делаю такие операции с использованием массивов. if (new int [] {12, 312, 234, 12, 323, 12} .Contains (someValue)) Легче читать и писать это тестирование для любого возможного значения. – albertein

+0

Не уверен, что ваш фрагмент предназначен только для того, чтобы задать вопрос, но я бы установил буквальную строку 'ourvalue' переменной. Предотвращает повторение себя. –

ответ

4

Nope. Это примерно так же просто, как и получается.

+0

Почему кто-то проголосовал за это? Другие ответы не проще, чем вопрос OP. –

+0

Нет? .. «ourvalue» написано 3 раза в других ответах? есть ли в других ответах 3 оператора равенства и 2 логических ИЛИ? – Fosco

+1

Являются ли они созданием массивов, поиском массивов и отбрасыванием массивов, когда нужны операторы равенства? –

3

Попробуйте это:

if (in_array('ourvalue', array($first, $second, $third))) doSomething(); 

Что мы делаем, чтобы создать массив, содержащий значения переменных, которые вы хотите проверить, и мы тогда пусть in_array функция искать значение иглы ('ourvalue ') в массиве, который мы только что создали.

+0

Вам не хватало ')', исправлено. –

+0

+1 для мышления, подобного мне. – Fosco

+0

@chpwn Спасибо за недостающие). @Fosco :) – albertein

5

С точки зрения производительности, это, вероятно, плохая идея, но для удаления дублирования кода, я думаю, что это будет работать:

if (in_array("ourvalue",array($firstvariable,$secondvariable,$thirdvariable))) { 
+0

+1 'in_array()' не обязательно ограничивается * проверкой переменной * для определенных жестко закодированных * значений * :) – BoltClock

+0

Я бы вряд ли назвал это проще. –

+0

+1 Для размышления, как я: p :) – albertein

1
if (in_array("ourvalue",array($firstvariable,$secondvariable,$thirdvariable))) 
    echo "TEST"; 
0

Вот быстрый прием: вы можете использовать Wolfram Alpha для упрощения некоторых логических выражений , например: (x==a || a==b || x==x) может быть упрощено до "True"

Пытаемся на примере, который вы приводите, появляется not to be able to be simplified.

+0

Извините, но это не так, выражение здесь '(a == x || a == y || a == z) – albertein

+0

Э, я думаю, вы «Не прочитал мой ответ. Я не предлагал конкретного решения, а скорее пример того, как Wolfram Alpha может упростить логические выражения. – Adam