Действительно ли возможно использовать || в переключателе PHP?

Вот яркий пример приложения WPF, которое действительно имеет смысл в деловом мире: Billy Hollis на Получении Умного с Billy Hollis WPF

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

5
задан o.k.w 1 November 2009 в 23:56
поделиться

5 ответов

Вам следует воспользоваться провалом операторов switch:

switch ($foo)
    {
        case 3:
        case 5:
           bar();
        break;

        case 2:
          apple();
        break;
    }

На странице руководства PHP есть несколько таких примеров.

24
ответ дан 18 December 2019 в 05:26
поделиться

Я думаю, что вам нужно:

switch ($foo)
{
    case 3:
    case 5:
       bar();
    break;

    case 2:
      apple();
    break;
}

Интересно, что я слышал, что Perl (или, может быть, уже представил) этот синтаксис, что-то вроде:

if ($a == 3 || 5)

Я не большой поклонник этого синтаксиса, так как я Мне пришлось довольно много писать лексические синтаксические анализаторы и полагать, что языки должны быть максимально однозначными. Но потом Perl и раньше решал все такого рода проблемы с помощью этих ужасных хвостовых if и или , так что я подозреваю, что с этим проблем не будет: -)

6
ответ дан 18 December 2019 в 05:26
поделиться

Вместо этого используйте одно из основных преимуществ операторов switch :

switch($foo) {
    case 3:
    case 5:
        bar();
        break;

    case 2:
        apple();
        break;
}
5
ответ дан 18 December 2019 в 05:26
поделиться

Да, я думаю, что у вас есть эквивалент:

    <?php

    $foo = 5000 ;

    switch( $foo )
    {
      case true :   // Gzipp:  an '=='-style comparison is made
        echo 'first one' ; // between $foo and the value in the case
        break;             // so for values of $foo that are "truthy"
                           // you get this one all the time.

      case 2:
        echo 'second one';
        break;

      default:
        echo 'neither' ;
        break;
    }

    ?>
1
ответ дан 18 December 2019 в 05:26
поделиться

Нет, если вы написали case 3 || 5: , тогда вы можете просто написать case True: , что, конечно же, не то, что вы хотели. Однако вы можете поместить операторы case непосредственно друг под другом:

switch ($foo)
    {
        case 3:
        case 5:
           bar();
        break;

        case 2:
          apple();
        break;
    }
0
ответ дан 18 December 2019 в 05:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: