Zastanawiałem się, czy muszę użyć funkcji „przerwa” w funkcji „przełącznik”, gdy używany jest „powrót”.
function test($string)
{
switch($string)
{
case 'test1':
return 'Test 1: ' . $string;
case 'test2':
return 'Test 2: ' . $string;
}
}
Wypróbowałem to i działa dobrze bez "przerwy". Ale muszę wiedzieć, czy to jest bezpieczne. Dziękuję Ci.
Odpowiedzi:
Tak, możesz użyć
return
zamiastbreak
...break
jest opcjonalny i służy do zapobiegania „ wypadaniu ” przez wszystkie innecase
instrukcje. Więcreturn
może być używany w podobny sposób, jakreturn
kończy wykonywanie funkcji.Ponadto, jeśli wszystkie twoje
case
stwierdzenia są takie:A po
switch
stwierdzeniu, które właśnie maszreturn $result
, użyciereturn find_result(...);
w każdym z nichcase
sprawi, że twój kod będzie znacznie bardziej czytelny.Na koniec nie zapomnij dodać
default
przypadku. Jeśli myślisz, że twój kod nigdy nie dotrze dodefault
sprawy, możesz użyćassert
funkcji, ponieważ nigdy nie możesz być pewien.źródło
Nie potrzebujesz przerwy, powrót zatrzymuje wykonanie funkcji.
(dla odniesienia: http://php.net/manual/en/function.return.php mówi:
)
źródło
Nie, nie jest to konieczne, ponieważ wywołanie słowa kluczowego return będzie wskazywać, że dana funkcja, którą wywołano przełącznik / obudowę, dobiegła końca.
źródło
Nie, nie potrzebujesz
break
wswitch case
oświadczeniu. Wbreak
rzeczywistości jest opcjonalny, ale używaj go ostrożnie.źródło
Nie potrzebujesz tego, ale zdecydowanie radzę używać go w każdym przypadku jako dobrej praktyki.
źródło
Przerwa jest tylko ostrzeżeniem używanym do ograniczenia kontroli struktury przełącznika przed przejściem do innego przypadku ... na przykład, jeśli masz trzy stwierdzenia przypadku i wartość jest dla pierwszego przypadku i użyłeś przypadku bez żadnej struktury podziału, wtedy wszystkie następujące przypadki zostanie wykonany mimo spełnienia warunku tylko dla pierwszego przypadku ... Return może wykonać funkcję asme, więc nie będzie problemu, jeśli użyjesz return zamiast break ponieważ return przejmie kontrolę z instrukcji switch case co jest w tej chwili potrzebne ...... mam nadzieję, że pomoże ....
źródło
return przekazuje kontrolę z powrotem do metody wywołującej, gdzie jako break przeskakuje do pierwszej instrukcji po bloku switch.
źródło