Есть ли более простой способ проверить, равна ли переменная множеству чисел? - PullRequest
2 голосов
/ 28 октября 2009

Это то, что у меня сейчас

if ($j == 1 || $j == 2 || $j == 3)

Есть ли более простой способ написать это. Что-то вроде ...

псевдокод

if ($j == 1-3)

Ответы [ 3 ]

7 голосов
/ 28 октября 2009

Вот один из способов использования in_array ()

if (in_array($j, array(1,2,3)))
{
    //do something
}

Или как насчет использования range () для создания массива

if (in_array($j, range(1,3)))
{
    //do something
}

Однако создание массива просто для проверки узкого непрерывного диапазона, подобного этому, довольно неэффективно. А как насчет просто:

if ($j >= 1 && $j <= 3)
{
    //do something
}

Если другие значения $ j будут запускать другое действие, переключение может быть более подходящим ...

switch($j)
{
    case 1:
    case 2:
    case 3:
        //do something
        break;        

}
4 голосов
/ 28 октября 2009

Если это диапазон, вы можете просто сделать:

if ($j >= 1 && $j <= 5) ...
1 голос
/ 28 октября 2009

Пол хороший, но если у вас большое число, вы можете использовать range:

if (in_array($j, range(0, 100)))
{

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...