Trong bài này, chúng ta sẽ tìm hiểu kỹ về cấu trúc rẽ nhánh if…else
trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.
Tư duy về cấu trúc rẽ nhánh if…else
trong PHP cũng giống các ngôn ngữ khác như C++, Java,… Các bạn có thể đọc bài Cấu trúc rẽ nhánh if else và minh họa với C++ hoặc Các cấu trúc điều khiển rẽ nhánh if else trong Java để tham khảo thêm nhé!
1. Câu lệnh if trong PHP
Cú pháp của câu lệnh if
:
if (condition) {
//code to be executed if condition is true;
}
Nếu condition là True thì các câu lệnh trong thân của if sẽ được thực thi. Điều kiện (condition) có kiểu dữ liệu là boolean và thường là kết quả của các toán tử logic.
<?php
$mark = 7.5;
if ($mark >= 9){
echo "excellent";
}
if ($mark >= 8 and $mark < 9){
echo "very good";
}
if ($mark >= 6.5 and $mark < 8){
echo "good";
}
if ($mark >= 5 and $mark < 6.5){
echo "average";
}
if ($mark >= 3.5 and $mark < 5){
echo "weak";
}
if ($mark < 3.5){
echo "poor";
}
?>
Kết quả
good
2. Câu lệnh if…else trong PHP
Cú pháp câu lệnh if…else
trong PHP:
if (condition) {
//code to be executed if condition is true;
} else {
//code to be executed if condition is false;
}
Nếu condition là True thì các câu lệnh trong thân của if sẽ được thực thi. Ngược lại, nếu condition là False thì các câu lệnh trong thân của else sẽ được thực thi.
<?php
$num = 3;
if ($num >= 0){
echo "num is greater than 0 or equal to 0<br>";
} else{
echo "num is smaller than 0<br>";
}
$num = -1;
if ($num >= 0){
echo "num is greater than 0 or equal to 0<br>";
} else{
echo "num is smaller than 0<br>";
}
?>
Kết quả
num is greater than 0 or equal to 0
num is smaller than 0
3. Câu lệnh if…elseif…else trong PHP
Trong trường hợp có nhiều điều kiện để so sánh và lựa chọn, chúng ta có thể dùng câu lệnh if…elseif…else
. Cú pháp câu lệnh if…elseif…else
trong PHP:
if (condition1) {
//code to be executed if this condition is true;
} elseif (condition2) {
//code to be executed if first condition is false and this condition is true;
} else {
//code to be executed if all conditions are false;
}
Nếu condition1 là True thì các câu lệnh trong thân if sẽ được thực hiện. Nếu condition1 là False thì chuyển sang xem xét condition2. Nếu condition2 là True thì sẽ thực thi các câu lệnh trong thân elif. Nếu condition2 là False thì sẽ thực hiện các câu lệnh trong else.
<?php
$num = 0;
if ($num > 0){
echo "num is greater than 0";
} elseif ($num == 0){
echo "num is equal to 0";
} else{
echo "num is smaller than 0";
}
?>
Kết quả
num is equal to 0
4. Các câu lệnh if lồng nhau trong PHP
Các câu lệnh if có thể nằm trong một câu lệnh if khác. Người ta gọi đó là câu lệnh if lồng nhau (nested if). Ví dụ:
<?php
$price = 50;
$quantity = 5;
$amount = $price * $quantity;
if ($amount > 100){
if ($amount > 500){
echo "Amount is greater than 500";
} else {
if ($amount < 500 and $amount > 400){
echo "Amount is";
} elseif ($amount < 500 and $amount > 300){
echo "Amount is between 300 and 500";
} else {
echo "Amount is between 200 and 500";
}
}
} elseif ($amount == 100){
echo "Amount is 100";
} else{
echo "Amount is less than 100";
}
?>
Kết quả
Amount is between 200 and 500
5. Toán tử gán có điều kiện (conditional assignment operator)
Các toán tử gán có điều kiện trong PHP được sử dụng để gán một giá trị cho biến (variable) tùy thuộc vào điều kiện nào được thỏa mãn.
Toán tử | Ví dụ | Ý nghĩa |
?: | $x = expr1 ? expr2 : expr3 | Trả về giá trị cho $x. $x = expr2 nếu expr1 = TRUE. $x = expr3 nếu expr1 = FALSE. |
?? | $x = expr1 ?? expr2 | Trả về giá trị cho $x. $x = expr1 nếu expr1 tồn tại và khác NULL. Nếu expr1 không tồn tại hoặc là NULL thì $x = expr2. |
Ví dụ
<?php
// ? operator
// if empty($user) = TRUE, set $status = "anonymous"
// anonymous
echo $status = (empty($user)) ? "anonymous" : "logged in";
echo "<br>";
$user = "John Doe";
// if empty($user) = FALSE, set $status = "logged in"
// logged in
echo $status = (empty($user)) ? "anonymous" : "logged in";
echo "<br>";
// ?? operator
// anonymous
echo $user = $_GET["user"] ?? "anonymous";
echo "<br>";
// variable $color is "red" if $color does not exist or is null
// red
echo $color = $color ?? "red";
?>
Kết quả
anonymous
logged in
anonymous
red