Kewajipan break dalam PHP
Perintah break adalah tidak wajib.
Tanpanya, walau bagaimanapun, tingkah laku blok case
akan menjadi tidak dijangka. Mari kita lihat contoh.
Katakan kita mempunyai kod seperti berikut:
<?php
$num = 1;
switch ($num) {
case 1:
echo 1;
break;
case 2:
echo 2;
break;
case 3:
echo 3;
break;
}
?>
Mari kita buang semua break di dalamnya, dan dalam pembolehubah
$num untuk permulaan, mari kita masukkan nombor 3.
Buat masa ini, semuanya akan berfungsi seperti sebelumnya:
<?php
$num = 3; // katakan nombor di sini ialah 3
switch ($num) {
case 1:
echo 1;
case 2:
echo 2;
case 3:
echo 3;
}
// Selepas dijalankan, kod akan memaparkan 3 - semuanya baik
?>
Sekarang, mari kita masukkan nombor 2 ke dalam pembolehubah $num. Dalam kes ini, kita menjangkakan
case 2 akan dilaksanakan, dan kemudian secara tidak dijangka
case 3 juga akan dilaksanakan:
<?php
$num = 2;
switch ($num) {
case 1:
echo 1;
case 2:
echo 2;
case 3:
echo 3;
}
// Selepas dijalankan, kod akan memaparkan 2, dan kemudian 3
?>
Jika kita masukkan nombor 1 ke dalam pembolehubah $num,
maka kesemua konstruksi case akan dilaksanakan:
<?php
$num = 1;
switch ($num) {
case 1:
echo 1;
case 2:
echo 2;
case 3:
echo 3;
}
// Selepas dijalankan, kod akan memaparkan 1, kemudian 2, dan kemudian 3
?>
Jadi, ternyata bahawa tanpa break,
selepas pelaksanaan case yang dimaksudkan,
kesemua case di bawahnya juga akan dilaksanakan. Kadang-kadang
ciri ini digunakan dalam menyelesaikan masalah.
Dalam contoh berikut, jika pembolehubah $num
mempunyai nilai 1 atau 2, maka
nilai 'a' akan dimasukkan ke dalam pembolehubah $res.
Jika pembolehubah $num mempunyai nilai
3, maka nilai 'b' akan dimasukkan
ke dalam pembolehubah $res:
<?php
$num = 1;
switch ($num) {
case 1:
case 2:
$res = 'a';
break;
case 3:
$res = 'b';
break;
}
echo $res;
?>
Di atas saya tulis, kadang-kadang ciri seperti ini digunakan, tetapi saya, secara umumnya, tidak mengesyorkan menggunakannya, kerana kod menjadi tidak sangat jelas.
Lebih jelas untuk menyelesaikan masalah sedemikian menggunakan if:
<?php
$num = 1;
if ($num == 1 or $num == 2) {
$res = 'a';
}
if ($num == 3) {
$res = 'b';
}
echo $res;
?>