Мне было интересно, нужно ли мне использовать «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
заявления выглядят так:
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 () немедленно прекращает выполнение текущей функции
)
Нет, это не обязательно, потому что, когда вызывается возврат ключевого слова, он укажет, что конкретная функция, вызванная вызовом switch / case, подошла к концу.
Нет, вам не нужен break
в заявлении о switch case
оператора. break
на самом деле необязательный, но используйте его с осторожностью.
Вам это не нужно, но я бы настоятельно советовал использовать его в любом случае в качестве хорошей практики.
Разрыв – это просто предостерегающее утверждение, используемое для ограничения контроля над структурой коммутатора от перехода в другой случай … например, если у вас есть три оператора case и значение для первого случая, и вы использовали случай без какой-либо структуры разлома, тогда все следующие случаи будет выполняться вопреки условию, удовлетворяющему только для первого случая … Возврат может выполнять функцию asme, поэтому это не будет проблемой, если вы используете возврат вместо перерыва, потому что возврат будет удален от оператора case switch которая в этот момент нужна … надеюсь, это поможет ….
return возвращает управление вызывающему методу, когда перерыв переходит к первой команде после блока переключения.