Концевой выключатель PHP;- Это обычно практикуется? - PullRequest
2 голосов
/ 17 апреля 2010

Я читал некоторые операторы switch и заметил один, использующий endswitch;. Почему или почему бы не использовать это? Это вообще необходимо?

Ответы [ 5 ]

15 голосов
/ 17 апреля 2010

Используется, если вы используете альтернативный синтаксис для структур управления .

Таким образом, вы можете выбрать

switch ($var) {
    case 1:
        echo "Hello!\n";
        break;
    case 2:
        echo "Goodbye!\n";
        break;
    default:
        echo "I only understand 1 and 2.\n";
}

или

switch ($var):
    case 1:
        echo "Hello!\n";
        break;
    case 2:
        echo "Goodbye!\n";
        break;
    default:
        echo "I only understand 1 and 2.\n";
endswitch;

Они функционально идентичны и просто представлены как синтаксический сахар .

2 голосов
/ 01 ноября 2010

+ 1 до янтаря. Альтернативный синтаксис, без сомнения, более читабелен, особенно при вставке управляющих структур в HTML. И да, принятые стандарты кодирования зависят от организации. В нашем случае мы используем if (): endif в шаблонах, а if () {} в логике и серверной части кода. Соблюдайте аккуратность кода, включая отступ:

<?php if($number %2 != 0):?>
    <p>I guess the number is odd</p>
<?php else:?>
    <p>I guess the number is even</p>
<?php endif?>

В этом случае вам даже не нужна эта надоедливая точка с запятой в конце.

Для сравнения, вот "альтернативный" (или оригинальный) способ:

<?php if($number %2 != 0) {?>
    <p>I guess the number is odd</p>
<?php } else {?>
    <p>I guess the number is even</p>
<?php }?>

Соблюдайте эстетически нарушающие фигурные скобки по всему коду. Первый стиль лучше подходит для тегов HTML.

1 голос
/ 19 апреля 2010

Альтернативный синтаксис очень хорош в файлах шаблонов.

1 голос
/ 17 апреля 2010

Я никогда не использовал вариант switch, но для операторов if или для операторов это может быть удобно в шаблонах.

Но это в основном дело вкуса.

0 голосов
/ 17 апреля 2010

Обычный системный синтаксис для операторов switch в языках стиля c выглядит следующим образом:

switch($foo) {
    case 1:  foobar();
             break;
    case 2:  something();
             break;
    case 3:  whatever();
             break;
    default: anything();
}

Никогда не видел «концевого выключателя» в реальном производственном коде.

Я бы рекомендовал придерживаться общепринятых стандартов кодирования, чтобы ваш код читался и поддерживался.

...