Câu lệnh switch trong php cho phép ta đưa ra quyết định có nhiều cách lựa chọn để giá trị của biểu thức truyền vào. Nếu giá trị biểu thức truyền vào trùng với các giá trị biểu thức điều kiện thì các câu lệnh bên trong biểu thức điều kiện sẽ được thực hiện.
Trang 1Câu l nh switch case trong php ệ
N i dung chính ộ
• 1 Câu l nh switch trong PHPệ
• 2 Switch và if
• 3 Switch l ng nhauồ
• 3 L i k tờ ế
1 Câu l nh switch trong PHP ệ
Câu l nh switch trong php cho phép ta a ra quy t n h có nhi u cách l a ch n ệ đư ế đị ề ự ọ để giá tr c a bi u ị ủ ể
th c truy n vào N u giá tr bi u th c truy n vào trùng v i các giá tr bi u th c i u ki n thì các câu ứ ề ế ị ể ứ ề ớ ị ể ứ đ ề ệ
l nh bên trong bi u th c i u ki n s ệ ể ứ đ ề ệ ẽđược th c hi n.ự ệ
Cú pháp:
1
2
3
4
5
6
7
8
9
10
11
switch($variable) {
case$value_1:
// chuỗi câu lênh
break;
case$value_2:
// chuỗi câu lệnh
break;
default:
// chuỗi câu lệnh
break;
}
Trong ó l nhđ ệ switch, case và default là các t khóa trong PHP Các chu i câu l nh có th là l nh ừ ỗ ệ ể ệ
n (1 l nh) ho c l nh ghép (k t h p nhi u l nh) và không c n t trong c p d u ngo c nh n {}
m i dòng l nh l a ch n (case) nó s so sánh xem bi n truy n vàoỗ ệ ự ọ ẽ ế ề $variable có b ng v i bi n i u ằ ớ ế đ ề
ki nệ $value_1, $value_2 hay không, n u trùng v i case nào thì nh ng câu l nh bên trong case ó ế ớ ữ ệ đ
s ẽ được th c hi n, ự ệ đồng th i dòng l nh break s k t thúc câu l nh switch N u không có l a ch n ờ ệ ẽ ế ệ ế ự ọ
(case) nào úng thì m c nh nó s ch y vào chu i dòng l nh trong default,đ ặ đị ẽ ạ ỗ ệ l nh default trong m nh ệ ệ
r nhánh switch
đề ẻ có th có ho c không.ể ặ
Trang 2k t qu tr v m t trong n m lo i d li u ó vàế ả ả ề ộ ă ạ ữ ệ đ toán t quan hử ệ so sánh trong switch luôn luôn là ==.
Ví d :ụ Vi t chế ương nh p vào m t s , dùng l nh r nhánh switch ki m tra s ó n u:ậ ộ ố ệ ẻ ể ố đ ế
• B ng 0 thì xu t dòng lênh “S không”ằ ấ ố
• B ng 1 thì xu t dòng l nh “S m t”ằ ấ ệ ố ộ
• B ng 2 thì xu t dòng l nh “S hai”ằ ấ ệ ố
• B ng 3 thì xu t dòng l nh “S ba”ằ ấ ệ ố
• B ng 4 thì xu t dòng l nh “S b n”ằ ấ ệ ố ố
• Các s còn l i xu t hi n dòng l nh “Không tìm th y”ố ạ ấ ệ ệ ấ
Bài gi iả:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$number= 1;
switch($number)
{
case0 :
echo'Số không';
break;
case1:
echo'Số một';
break;
case2:
echo'Số hai';
break;
case3:
echo'Số ba';
break;
case4 :
echo'Số bốn';
break;
default:
Trang 319
20
21
22
echo'Không tìm thấy';
break;
}
Gi i thíchả :
• Bước 1: Bi u th c truy n vào là bi nể ứ ề ế $number có giá tr = 10ị
• Bước 2: Ở case th nh t i u ki n làứ ấ đ ề ệ $number = 0 thì m i th c hi n, mà $number = 10 nênớ ự ệ
không th a i u ki nỏ đ ề ệ
• Bước 3: Tương t cho các l nh case còn l i ự ệ ạ đều không th a i u ki n.ỏ đ ề ệ
• Bước 4: Đế ện l nh default, ây là l nh đ ệ được th c hi n khi các lênh case trên không có cái ự ệ
nào th a i u ki n nên trên màn hình s xu t hi n ch “Không tìm th y”.ỏ đ ề ệ ẽ ấ ệ ữ ấ
Gi s ta nh p biênả ử ậ $number = 2, bài toán trên s ẽ được gi i thích nh sau:ả ư
• Bước 1: Nh pậ $number = 2
• Bước 2: case th nh t không th a i u ki n vì 2 khác 0 nên chỞ ứ ấ ỏ đ ề ệ ương trình s qua Case ẽ
ti p theo.ế
• Bước 3: case th 2 v n không th a i u ki n vì 2 khác 1 nên chỞ ứ ẫ ỏ đ ề ệ ương trình s qua Case ẽ
ti p theoế
• Bước 4: case th 3 này th a i u ki n vì 2 b ng 2, lúc này chỞ ứ ỏ đ ề ệ ằ ương trình s ch y vào các ẽ ạ
câu l nh bên trong nên xu t ra màn hình ch ‘S hai’, ệ ấ ữ ố đồng th i dòng Break d ng luôn c ờ ừ ả
chương trình r nhánh này vì ã th a mãn K t thúc chẻ đ ỏ ế ương trình
2 Switch và if
L nh If vàệ l nh Switchệ là 2 d ngạ l nhệ r nhánh trong PHP, tuy nhiên l nh if v n linh ho t h n switchẻ ệ ẫ ạ ơ
và t c ố độ ũ c ng nhanh h n V i nh ng bài toán ta th hi n b ng switch thì hoàn toàn có th chuy n ơ ớ ữ ể ệ ằ ể ể
thành if, ngượ ạc l i nh ng bài toán ta dùng l nh if ữ ệ để ể ệ th hi n thì ch a ch c ã chuy n qua l nh ư ắ đ ể ệ
switch đươc
V i bài toán trên ta th hi n b ng câu l nh if nh sau:ớ ể ệ ằ ệ ư
1
2
$number= 10;
if($number== 0){
Trang 45
6
7
8
9
10
11
12
13
14
15
16
17
18
19
echo'Số không';
}
elseif($number== 1){
echo'Số một';
}
elseif($number== 2){
echo'Số hai';
}
elseif($number== 3){
echo'Số ba';
}
elseif($number== 4){
echo'Số bốn';
}
else{
echo'Không tìm thấy';
}
3 Switch l ng nhau ồ
C ng nhũ ư l nh if,ệ l nh switch c ng có th l ng nhau.ệ ũ ể ồ
Ví d :ụ
1
2
3
4
5
6
7
$number= 12;
$midle= null;
switch($number)
{
case12 : // nếu $number = 12
$midle= $number% 2; // lấy số dư switch($midle)
{
Trang 59
10
11
12
13
14
15
16
17
18
19
case0 : // nếu số dư = 0
echo'Số chẵn';
break;
default:
echo'Số lẽ';
break;
}
break;
default: // nếu không phải 12 thì không làm gì break;
}