Hiari ya break katika PHP
Amri break ni hiari.
Lakini bila hiyo, tabia ya vitalu case
itakuwa isiyotarajiwa. Hebu tuangalie kwa mfano.
Tuchukulie tuna msimbo kama huu:
<?php
$num = 1;
switch ($num) {
case 1:
echo 1;
break;
case 2:
echo 2;
break;
case 3:
echo 3;
break;
}
?>
Tuiondoe break yote, na kwenye kutofautisha
$num kwa mara ya kwanza tuandike nambari 3.
Kwa sasa kila kitu kitafanya kazi kama ilivyokuwa:
<?php
$num = 3; // wacha kuwe na nambari 3 hapa
switch ($num) {
case 1:
echo 1;
case 2:
echo 2;
case 3:
echo 3;
}
// Baada ya kuzindua msimbo utaonyesha 3 - yote ni sawa
?>
Sasa hebu kwenye kutofautisha $num tuandike
nambari 2. Katika kesi hii, kwa kutarajia
case 2 itatekelezwa, na kisha kwa kushangaza
case 3 pia itatekelezwa:
<?php
$num = 2;
switch ($num) {
case 1:
echo 1;
case 2:
echo 2;
case 3:
echo 3;
}
// Baada ya kuzindua msimbo utaonyesha 2, kisha 3
?>
Lakini ikiwa kwenye kutofautisha $num tunaandika
nambari 1, basi kwa ujumla yote
miundo case itatekelezwa:
<?php
$num = 1;
switch ($num) {
case 1:
echo 1;
case 2:
echo 2;
case 3:
echo 3;
}
// Baada ya kuzindua msimbo utaonyesha 1, kisha 2, na kisha 3
?>
Hii inamaanisha kuwa, kukosekana kwa break
baada ya kutekeleza case ulilokusudia,
case zote chini yake zitakelezwa. Wakati mwingine
huu unaotokea unatumika, wakati wa kutatua matatizo.
Katika mfano ufuatao, ikiwa kutofautisha $num
inna thamani 1 au 2, basi
kwenye kutofautisha $res kitaandikwa 'a'.
Lakini ikiwa kutofautisha $num inna thamani
3, basi kwenye kutofautisha $res
kitaandikwa 'b':
<?php
$num = 1;
switch ($num) {
case 1:
case 2:
$res = 'a';
break;
case 3:
$res = 'b';
break;
}
echo $res;
?>
Hapo juu niliandika, kwamba wakati mwingine kipengele hiki kinatumika, lakini kwa ujumla, sipendi kutumia, kwa sababu msimbo huwa sio wa wazi sana.
Ni wazi zaidi kutatua kazi kama hiyo kwa kutumia if:
<?php
$num = 1;
if ($num == 1 or $num == 2) {
$res = 'a';
}
if ($num == 3) {
$res = 'b';
}
echo $res;
?>