Opsionaliteti i break në PHP
Komanda break është opsionale.
Pa të, megjithatë, sjellja e blloqeve case
do të jetë e papritur. Le të shohim me një shembull.
Le të themi se kemi këtë kod:
<?php
$num = 1;
switch ($num) {
case 1:
echo 1;
break;
case 2:
echo 2;
break;
case 3:
echo 3;
break;
}
?>
Le të heqim të gjitha break, dhe në variablin
$num për fillim le të vendosim numrin 3.
Për momentin gjithçka do të funksionojë ashtu siç funksiononte:
<?php
$num = 3; // le të themi se këtu është numri 3
switch ($num) {
case 1:
echo 1;
case 2:
echo 2;
case 3:
echo 3;
}
// Pas nisjes kodi do të shfaqë 3 - gjithçka në rregull
?>
Tani le të vendosim në variablin $num
numrin 2. Në këtë rast, pritej të
ekzekutohet case 2, dhe pastaj papritur
edhe case 3:
<?php
$num = 2;
switch ($num) {
case 1:
echo 1;
case 2:
echo 2;
case 3:
echo 3;
}
// Pas nisjes kodi do të shfaqë 2, dhe pastaj 3
?>
Nëse vendosim në variablin $num
numrin 1, atëherë në përgjithësi do të ekzekutohen të gjitha
konstruksionet case:
<?php
$num = 1;
switch ($num) {
case 1:
echo 1;
case 2:
echo 2;
case 3:
echo 3;
}
// Pas nisjes kodi do të shfaqë 1, pastaj 2, dhe pastaj 3
?>
Kjo do të thotë që, në mungesë të break,
pas ekzekutimit të case të planifikuar,
do të ekzekutohen edhe të gjitha case
poshtë tij. Ndonjëherë
këtë veçori e përdorin, kur zgjidhin probleme.
Në shembullin vijues, nëse variabla $num
ka vlerën 1 ose 2, atëherë
në variablin $res do të shkruhet 'a'.
Nëse variabla $num ka vlerën
3, atëherë në variablin $res
do të shkruhet 'b':
<?php
$num = 1;
switch ($num) {
case 1:
case 2:
$res = 'a';
break;
case 3:
$res = 'b';
break;
}
echo $res;
?>
Më lart thashë që ndonjëherë këtë veçori e përdorin, por unë, në përgjithësi, nuk e rekomandoj ta përdorni, sepse kodi bëhet jo shumë i qartë.
Është më e qartë të zgjidhet një problem i tillë me if:
<?php
$num = 1;
if ($num == 1 or $num == 2) {
$res = 'a';
}
if ($num == 3) {
$res = 'b';
}
echo $res;
?>