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