Вам нужен перерыв в переключателе, когда используется возврат?
мне было интересно, нужно ли использовать функцию "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, который является необходимостью в этот момент...... надеюсь, это поможет....