- CÂU LỆNH RẼ NHÁNH
- Câu lệnh if ... else
- Cấu trúc lệnh
- Cú pháp lệnh if else
- Cú pháp lệnh elseif
- Cú pháp lệnh switch case
Các loại câu lệnh dẽ nhánh
PHP cung cấp ba loại cấu trúc lệnh dẽ nhánh mà bạn có thể sử dụng gồm:
if - else
, elseif
, switch
Câu lệnh IF ... ELSE
Cấu trúc lệnh IF - ELSE
Cấu trúc lệnh được mô tả như sơ đồ sau:

(Lệnh if không có else): Ở sơ đồ thứ nhất khi chạy code nó sẽ kiểm tra điều kiện, nếu điều kiện là đúng thì sẽ thực
hiện khối CODE thỏa mãn, còn khi điều kiện không thỏa mãn thì sẽ bỏ qua khối lệnh này, trường hợp này thì
lệnh if
không cần có else
(Lệnh if có else): Sự làm việc như sơ đồ thứ hai. Có một khối lệnh chạy nếu điều kiện thỏa mãn,
và khối lệnh khác dành cho trường hợp điều kiện không thỏa mãn. Lúc này lệnh if
sẽ có else
Cú pháp lệnh IF - ELSE
if (condition) lệnh hoặc khối lệnh ({...}) thi hành nếu condition (điều kiện) là true else lệnh hoặc khối lệnh ({...}) thi hành nếu condition (điều kiện) là false
Condition là biểu thức logic có giá trị là true hoặc false
Trong cú pháp trên nếu chỉ thi hành một khối lệnh khi điều kiện thỏa mãn thì bỏ đi từ phần else
, ví dụ:
//In ra mà hình nếu là số chẵn $number = 1990; if (($number % 2) == 0) echo '$number là số chẵn;
/* Code kiểm tra nếu là ngày thứ 7 và chủ nhật thì in ra màn hình chữ Ngày Nghỉ Còn các ngày khác in chứ Ngày làm việc */ <html> <body> <?php $d = date("D"); if (($d == "Sun") || ($d == "Sat")) echo "Ngày nghỉ!"; else echo "Ngày làm việc!"; ?> </body> </html>
Chạy code trên hôm nay thì ra:
Ngày làm việc!
Câu lệnh ba thành phần
Khối lệnh ngắn gọn sau sau:
$var = ($conditon) ? ($exp_v1) ? ($exp_v2); /*Ví dụ: $name = isset($_POST['name']) ? $_POST['name']:null; */
Tương đương với
if ($conditon) $var = ($exp_v1); else $var = ($exp_v1);
Ví dụ:
Cú pháp lệnh ELSEIF
Lệnh elseif
được dùng kết hợp với if - else
cho trường hợp bạn muốn kiểm
tra và thi hành nhiều điều kiện (hơn 2).
if (điều_kiện_1) Khối lệnh cho điều_kiện_1 elseif (điều_kiện_2) Khối lệnh cho điều_kiện_2 ... elseif (điều_kiện_n) Khối lệnh cho điều_kiện_n ... else Khối lệnh khi tất cả các điều kiện trên đều sai
Ví dụ: kiểm tra hôm nay là thứ 7 thì in ra thứ 7 ngày nghỉ, nếu là chủ nhật in ra chủ nhật ngày nghỉ, còn lại in ra ngày làm việc
<html> <body> <?php $d = date("D"); if ($d == "Sun") echo "Chủ Nhật, Ngày nghỉ!"; elseif ($d == "Sat") echo "Thứ Bảy, Ngày nghỉ!"; else echo "Ngày làm việc!"; ?> </body> </html>
Chạy Code trên hôm này sẽ là:
Ngày làm việc!
Cú pháp lệnh switch - case
Cú pháp lệnh elseif
hoàn toàn có thể thay thế bởi switch case
.
Với switch case
, có nghĩa là bạn muốn thi hành 1 trong các khối lệnh đưa ra.
Cú pháp như sau:
switch (biểu_thức){ case giá_trị_1: Code thực hiện nếu biểu_thức = giá_trị_1; break; case giá_trị_n: Code thực hiện nếu biểu_thức = giá_trị_n; break; default: Code thực hiện nếu tất cả các trường hợp phía trên không xảy ra. }
Phần khối default
nếu bạn không cần dùng thì có thế bỏ phần này. Chú ý cần có break;
nếu không thì khối lệnh tiếp theo sẽ tiếp tục thực hiện cho đến khi gặp một break
khác.
Ví dụ dùng switch - case
in ra màn hình ngày tuần hôm nay
<html> <body> <?php $d = date("D"); switch ($d){ case "Mon": echo "Hôm nay là Thứ Hai"; break; case "Tue": echo "Hôm nay là Thứ Ba"; break; case "Wed": echo "Hôm nay là Thứ Tư"; break; case "Thu": echo "Hôm nay là Thứ Năm"; break; case "Fri": echo "Hôm nay là Thứ Sáu"; break; case "Sat": echo "Hôm nay là Thứ Bảy"; break; case "Sun": echo "Hôm nay là Chủ Nhật"; break; default: echo "Không biết ?"; } ?> </body> </html>Hôm nay là Thứ Tư