|
|
|
|
if ($position || $position2)==(1||3||7||8||21))
{
echo "Да";
}
|
Почему не работает такая конструкция?
Должно выводится да, если $position или $position2 равно одному из перечисленных значений.
Как коротко написать такую проверку? | |
|
|
|
|
|
|
|
для: Sergeous
(27.12.2011 в 16:49)
| | Хм... помоему тут не хватает открывающей скобки ( | |
|
|
|
|
|
|
|
для: cheops
(27.12.2011 в 16:53)
| | Да, но ошибка не в этом. Выводит ответ неправильно. | |
|
|
|
|
|
|
|
для: cheops
(27.12.2011 в 16:53)
| |
$position = 55;
$position = 2;
if (($position || $position2)==(1||3||7||8||21))
{
echo "Да";
}
else echo "net";
|
Выводит Да | |
|
|
|
|
|
|
|
для: Sergeous
(27.12.2011 в 16:59)
| | Вообще оператор || - это логический оператор, он возвращает либо true, либо false. Поэтому и "да". Вы хотите сравнить последовательности чисел? | |
|
|
|
|
|
|
|
для: cheops
(27.12.2011 в 17:03)
| | Мне нужно как-нибудь сократить вот этот код
if ( ($position=='2'||$position=='5'||$position=='23') ||
($position2=='2'||$position2=='5'||$position2=='23')
)
|
| |
|
|
|
|
|
|
|
для: Sergeous
(27.12.2011 в 17:06)
| | Я вам написал ниже. | |
|
|
|
|
|
|
|
для: Sergeous
(27.12.2011 в 16:59)
| | Вы неверно используете логические операторы. Вам нужно такое условие:
$pos_arr = [1, 3, 7, 8, 21]
if (in_array($position, $pos_arr) || in_array($position2, $pos_arr))
{
...
|
Проверьте только порядок операндов, не помню его навскидку. | |
|
|
|
|
|
|
|
для: Киналь
(27.12.2011 в 17:06)
| | Спасибо, буду делать так. | |
|
|
|