Обработка условий 'или' в Ruby против PHP - PullRequest
1 голос
/ 30 мая 2010

Я не уверен, как это назвать, поэтому приведу пример.

В PHP

1==2 || 2 возвращает 1 или true

в рубине

1==2 || 2 возвращает 2 (второе утверждение, если первое оценивается как ложное).

Есть ли какой-нибудь короткий способ реализовать подобное в PHP?

Ответы [ 3 ]

2 голосов
/ 31 мая 2010

Как насчет

1==2 ? 1==2 : 2

или в PHP 5.3

1==2 ?: 2
1 голос
/ 31 мая 2010

Как насчет 1 == 2 or 2?

Однако результат может не совпадать, если вы печатаете напрямую, поэтому вам нужно поместить результат в переменную. Возьмите этот пример:

$result = "a" or 2;
var_dump($result); // prints string(1) "a"

var_dump("a" or 2); // prints bool(true)

Взгляните сюда: http://www.php.net/manual/en/language.operators.logical.php

1 голос
/ 31 мая 2010

В PHP результат логических выражений всегда является логическим. Так 1==2 || 2 дает true.

Лучшее, что я могу придумать, это

($var = 1 == 2) || ($var = 2)

Тогда $var будет 2.

В зависимости от ответа на вопрос Матчу, вы можете захотеть:

(($var = 1) == 1) || ($var = 2)

или

($var = 1 == 1) || ($var = 2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...