Мне было интересно, нужно ли мне использовать «break» в функции «switch», когда используется «return».
function test($string)
{
switch($string)
{
case 'test1':
return 'Test 1: ' . $string;
case 'test2':
return 'Test 2: ' . $string;
}
}
Пробовал, работает без "обрывов" нормально. Но мне нужно знать, безопасно ли это. Спасибо.
Ответы:
Да, можно использовать
return
вместоbreak
...break
является необязательным и используется для предотвращения " проваливания " всех остальныхcase
операторов. Такreturn
может использоваться аналогичным образом, посколькуreturn
завершает выполнение функции.Кроме того, если все ваши
case
утверждения выглядят так:И после только что
switch
написанного оператораreturn $result
использованиеreturn find_result(...);
в каждомcase
сделает ваш код более читабельным.Наконец, не забудьте добавить
default
футляр. Если вы думаете, что ваш код никогда не достигнетdefault
случая, вы можете использовать этуassert
функцию, потому что вы никогда не можете быть уверены.источник
Перерыв не нужен, возврат останавливает выполнение функции.
(для справки: http://php.net/manual/en/function.return.php говорит:
)
источник
Нет, в этом нет необходимости, потому что когда вызывается ключевое слово return, это будет указывать на то, что конкретная функция, которую вызывали переключатель / case, подошла к концу.
источник
Нет,
break
вswitch case
заявлении не требуется . Наbreak
самом деле это необязательно, но используйте его с осторожностью.источник
Вам это не нужно, но я настоятельно рекомендую использовать его в любом случае в качестве хорошей практики.
источник
Разрыв - это просто предупредительное заявление, используемое для ограничения управления структурой переключателя от перехода в другой случай ... например, если у вас есть три оператора case, а значение - для первого случая, и вы использовали case без какой-либо структуры break, тогда все следующие случаи будет выполняться, несмотря на то, что условие выполняется только для первого случая ... Return может выполнять функцию asme, поэтому не будет проблем, если вы используете return вместо break, потому что return заберет управление у оператора switch case что необходимо в данный момент ... надеюсь, это поможет ....
источник
return возвращает управление вызывающему методу, а при break переходит к первой инструкции после блока switch.
источник