Вам нужен перерыв в переключателе, когда используется возврат?
мне было интересно, нужно ли использовать функцию "break" в функции "switch", когда используется "return".
function test($string)
{
switch($string)
{
case 'test1':
return 'Test 1: ' . $string;
case 'test2':
return 'Test 2: ' . $string;
}
}
Я пробовал, и он работает просто отлично без "перерыва". Но мне нужно знать, безопасно ли это. Спасибо.
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, который является необходимостью в этот момент...... надеюсь, это поможет....