Нужен ли вам перерыв при использовании возврата?

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

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

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

Ответ 1

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

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

Кроме того, если все ваши инструкции case выглядят следующим образом:

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

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

Наконец, не забудьте добавить случай default. Если вы считаете, что ваш код никогда не достигнет случая default, вы можете использовать функцию assert, потому что вы никогда не можете быть уверены.

Ответ 2

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

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

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

)

Ответ 3

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

Ответ 4

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

Ответ 5

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

Ответ 6

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

Ответ 7

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