Biểu thức điều kiện trong PHP là tập hợp các câu điều kiện để thực hiện các hành động khác nhau dựa trên các điều kiện khác nhau.
Cũng tương tự như các ngôn ngữ lập trình khác, PHP hỗ trợ các biểu thức điều kiện sau:
- if
- if…else
- if…elseif…else
- switch
Giải thích: Chỉnh ta hầu hết đều biết các chương trình thường chạy theo một trình tự từ trên xuống mà không chừa bất kì một dòng code nào (ngoại trừ các dòng comment). Nhưng trong thực tế, đối với một số chương trình chúng ta cần chúng chạy theo nhiều luồng chứ không phải theo trình tự như vậy. Vì thế, biểu thức điều kiện đã ra đời.
Biểu thức điều kiện if
Biểu thức điều kiện if, hay còn thường gọi là câu điều kiện if cho phép ta đưa ra các quyết định dựa trên việc kiểm tra điều kiện nào đó đúng (true) hay sai (false).
Cú pháp
if(bieu-thuc-dieu-kien){ //Câu lệnh }
Ví dụ:
<?php $so=50; if($so % 2 == 0){ //điều kiện kiểm tra số chẵn echo "Số ".$so." là số chẵn";" } if($so >= 0){ //điều kiện kiểm tra số dương echo "Số ".$so." là số dương"; } ?>
Giải thích:
- Ta gán biến $so có giá trị là 50.
- Kiểm tra phần dư sau khi lấy $so chia cho 2 có bằng 0 hay không (toán tử % dùng để chia lấy số dư, tham khảo lại toán tử trong Bài 4: Toán tử và biểu thức trong PHP). Nếu đúng thì echo ra kết quả.
- Điều kiện kiểm tra số dương từ dòng số 7 trở đi cũng có ý nghĩa tương tự.
Biểu thức điều kiện if else trong PHP
Nói một cách đơn giản, bạn sẽ thực hiện đoạn code thứ nhất được bao trong if() nếu điều kiện đặt ra là đúng (true), ngược lại nếu điều kiện đó là sai (false) thì bạn sẽ thực hiện đoạn code thứ 2 được bao bởi else. Trong trường hợp này, bạn sẽ phải dùng đến câu lệnh if else trong PHP.
if (biểu_thức_điều_kiện){ //câu lệnh 1 //phần code này được thực thi nếu điều kiện là true } else{ //câu lệnh 1 //phần code này được thực thi nếu điều kiện là false }
Giải thích:
- Nếu biểu_thức_điều_kiện đúng thì Những Câu Lệnh 1 sẽ được thực hiện và Những Câu Lệnh 2 sẽ không được thực hiện.
- Ngược lại nếu biểu_thức_điều_kiện sai thì những câu lệnh 1 sẽ bị bỏ qua và sẽ thực hiện những câu lệnh 2.
Ví dụ:
$so = 20; if ($so % 2 == 0){ echo 'Số ' . $so . ' Là Số Chẵn'; } else{ echo 'Số ' . $so . ' Là Số Lẻ'; }
Giải thích:
- Ta gán biến $so có giá trị là 20.
- Kiểm tra phần dư sau khi lấy $so chia cho 2 có bằng 0 hay không (toán tử % dùng để chia lấy số dư, tham khảo lại toán tử trong Bài 4: Toán tử và biểu thức trong PHP). Nếu đúng thì echo ra kết quả Số 20 Là Số Chẵn, nếu sai thì cho ra Số 20 Là Số Lẻ.3
Biểu thức điều kiện if…elseif…else trong PHP
Nói đơn giản về ý nghĩa của biểu thức này hơn đó là kết hợp nhiều câu lệnh if else trong một bài code. Bới vì trong thực tế, không phải lúc nào cũng chỉ có 2 điều kiện mà sẽ có hàng chục điều kiện khác nhau, lúc này ta phải kết hợp nhuần nhuyễn giữa 2 lệnh if và else để xử lý bài toán.
Ví dụ: Ta xuất thông tin chào đón các học sinh vào năm học mới theo khối lớp của trường trung học cơ sở.
<html> <body> <?php $lop="Lop 6"; if ($lop == "Lop 6") echo "Chào mừng các em học sonh lớp 6!"; elseif ($lop == "Lop 7") echo "Chào mừng các em học sonh lớp 7!"; elseif ($lop == "Lop 8") echo "Chào mừng các em học sonh lớp 8!"; else echo "Chào mừng các em học sonh lớp 9!"; ?> </body> </html>
Giải thích:
- Nếu $lop bằng ‘Lop 6’ thì xuất ra màn hình “Chào mừng các em học sinh lớp 6”,
- Ngược lại nếu bằng ‘Lop 7’ thì xuất ra màn hình “Chào mừng các em học sinh lớp 7”,
- Ngược lại nếu bằng ‘Lop 8’ thì xuất ra màn hình “Chào mừng các em học sinh lớp 8”,
- Ngược lại không cần kiểm tra gì nữa vì là trương hợp cuối cùng, không phải là các trưởng hợp ở trên nên ta xuất ra màn hình “Chào mừng các em học sinh lớp 9”.
Biểu thức điều kiện if else lồng nhau trong PHP
Biểu thức điều kiện có rất nhiều biến thể, đặc biệt là các biểu thức được lồng vào nhau. Tức là sẽ có 1 hoặc nhiều câu điều kiện if con nằm trong một câu điều kiện if cha nào đó. (Riêng bản thân mình thường tự gọi đây là 1 dạng biểu thức điều kiện đa cấp).
Ví dụ: Cho một số và kiểm tra xem số đó bé hơn 100 hay không. Nếu bé hơn thì kiểm tra tiếp xem số đó có là số dương hay không. Nếu số đó cũng là số dương thì hãy kiểm tra tiếp xem số đó là số chẵn hay số lẻ. Sau đó xuất ra màn hình các kêt quả phù hợp.
<html> <body> <?php $so = 800; // cho 1 giá trị là 80 if ($so < 100) // Nếu số bé hơn 100, thì điều kiện kiểm tra là đúng và ta sẽ chạy tiếp câu lệnh bên trong { if ($so > 0) { // Nếu số lớn hơn 0 thì điều kiện kiểm tra là đúng và chạy tiếp lệnh bên trong if ($so % 2 == 0) { // Nếu số dư khi chia cho 2 = 0, tức là số chẵn ta sẽ chạy tiếp câu lệnh bên trong echo "So " . $so . " Là số chẵn, lớn hơn 0 và bé hơn 100"; } else echo "So " . $so . " Là số lẻ, lớn hơn 0 và bé hơn 100"; } elseif ($so % 2 == 0) { // Ngược lại đây sẽ là số bé hơn 0 và ta tiếp tục kiểm tra nếu số dư khi chia cho 2 = 0, tức là số chẵn ta sẽ chạy tiếp câu lệnh bên trong echo "So " . $so . " Là số chẵn và bé hơn 0"; } else echo "So " . $so . " Là số lẻ và bé hơn 0"; } else //trường hợp này đã ra ngoài phạm vi yêu cầu của đề bài, tức là số cho trước khi này sẽ lớn hơn 100 echo "Ngoài vùng phủ sóng :3 "; ?> </body> </html>
Lưu ý khi dùng các biểu thức quan hệ if, if…else, if…elseif…else
- Biểu Thức chứa trong cặp dấu ngoặc tròn
()
chính là các biểu thức quan hệ. Có thể kết hợp nhiều biểu thức quan hệ thông qua toán tử && (nghĩa là AND) hay || (nghĩa là OR) - Trong một khối lệnh nếu bên trong chứa nhiều hơn 2 lệnh thì phải có cặp ngoặc nhọn
{}
dùng để mở khối lệnh và đóng khối lênh, như vậy trình biên dịch sẽ hiểu đây là một khối lệnh và nó sẽ thực thi hết khối lệnh này.
Biểu thức Switch Trong PHP
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. Mục đích của lệnh switch hay được sử dụng để tránh các khối if…elseif…else dài.
switch ($variable) { case $value_1: // các câu lênh 1 break; case $value_2: // các câu lệnh 2 break; default: // các câu lệnh khác break; //phần code này được thực thi nếu biểu_thức là khác với $value_1, $value_2, ... }
Giá trị ở case chỉ chấp nhận các kiễu dữ liệu string, INT, boolean, null, foat hoặc là một biểu thức có kế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ụ: Chương trình xác định 1 số và xuất ra tên tháng tương ứng với số đó.
<html> <body> <?php $th = 1; switch ($th) { case 1: echo 'Tháng một'; break; case 2: echo 'Tháng hai'; break; case 3: echo 'Tháng ba'; break; case 4 : echo 'Tháng bốn'; break; case 5 : echo 'Tháng năm'; break; case 6 : echo 'Tháng sáu'; break; case 7 : echo 'Tháng bảy'; break; case 8 : echo 'Tháng tám'; break; case 9 : echo 'Tháng chín'; break; case 10 : echo 'Tháng mười'; break; case 11 : echo 'Tháng mười một'; break; case 12 : echo 'Tháng mười hai'; break; default: echo 'Tháng không tồn tại'; break; } ?> </body> </html>
Ngoài ra, cũng tương tự như câu lệnh if, câu lệnh switch cũng có thể lồng nhau.
<?php $a = 5; // Kiểm tra $a có phải là số nguyên không $check = is_int($a); switch ($check) { // Nếu $a là số nguyên thì thực thi dòng lệnh bên dưới case "true": switch ($a) { case 0: echo "a bằng 0"; break; case 2: echo "a bằng 2"; break; case 3: echo "a bằng 3"; break; case 4: echo "a bằng 4"; break; case 5: echo "a bằng 5"; break; default: echo "$a"; } break; default: // Nếu $a không là số nguyên thì thực thi dòng lệnh bên dưới echo "a không là số nguyên"; } ?>
Qua bài viết này mình đã giới thiệu sơ lược về các biểu thức điều kiện như if, if…else, iii…elseif…else và câu lệnh switch để các bạn tự học và thực hành cho những bài toán sau này.
Xem thêm:
- Bài 4: Toán tử và biểu thức trong PHP
- Bài 3: Những kiểu dữ liệu trong PHP
- Lộ trình học PHP Căn Bản
- Cách sửa lỗi error establishing a database connection cho website
Leave a Reply