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


мне было интересно, нужно ли использовать функцию "break" в функции "switch", когда используется "return".

function test($string)
{
  switch($string)
  {
    case 'test1':
      return 'Test 1: ' . $string;
    case 'test2':
      return 'Test 2: ' . $string;
  }
}

Я пробовал, и он работает просто отлично без "перерыва". Но мне нужно знать, безопасно ли это. Спасибо.

7 72
php

7 ответов:

Да, вы можете использовать return вместо break...

break является необязательным и используется для предотвращения "падение" через все другие case заявления. Так что return может использоваться аналогичным образом, как return завершает выполнение функции.

также, если все ваши case утверждения такие:

case 'foo':
   $result = find_result(...);
   break;

и после switch заявление у вас просто есть return $result, используя return find_result(...); в каждом элементе case сделает ваш код гораздо более читабельно.

наконец, не забудьте добавить default случае. Если вы думаете, что ваш код никогда не достигнет default тогда вы могли бы использовать assert

вам не нужен перерыв, возврат останавливает выполнение функции.

(для справки: http://php.net/manual/en/function.return.php говорит:

при вызове из функции оператор return () немедленно завершает выполнение текущей функции

)

нет его не нужно, потому что при вызове ключевого слова return это будет означать, что конкретная функция, которая была вызвана switch/case, подошла к концу.

нет, вам не нужен break на switch case заявление. Элемент break на самом деле необязательно, но использовать с осторожностью.

перерыв-это просто предостерегающее заявление, используемое для ограничения контроля структуры коммутатора от перехода в другой случай...например, если у вас есть три оператора case и значение для первого случая, и вы использовали case без какой-либо структуры разрыва, то все следующие случаи будут выполнены, несмотря на то, что условие выполняется только для первого случая... Return может выполнять функцию asme, поэтому это не будет проблемой, если вы используете return вместо break, потому что return заберет контроль из оператора switch case, который является необходимостью в этот момент...... надеюсь, это поможет....

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

return дает управление обратно в вызывающий метод, в котором в качестве перерыв переход к первой инструкции после включения блока.