Mục lục
Câu lệnh có điều kiện trong PHP
Giống như hầu hết các ngôn ngữ lập trình khác, PHP cũng cho phép bạn viết mã thực hiện các hành động khác nhau dựa trên kết quả của điều kiện kiểm tra logic hoặc so sánh tại thời điểm chạy. Điều này có nghĩa là, bạn có thể tạo điều kiện kiểm tra dưới dạng biểu thức đánh giá một trong hai true
hoặc false
và dựa trên những kết quả này ta có thể thực hiện một số hành động nhất định.
Có một số câu lệnh trong PHP mà bạn có thể sử dụng để đưa ra quyết định:
- Câu lệnh if
- Câu lệnh if ... else
- Câu lện if ... elseif .... else
- Các switch ... case
Bây giời chúng ta sẽ khám phá từng câu lệnh này trong các phần tiếp.
Câu lệnh if
Câu lệnh if được sử dụng để thực thi một khối mã chỉ khi đánh giá lại tình trạng nhất định là true. Đây là câu lệnh điều kiện đơn giản nhất của PHP và có thể được viết như sau:
if (điều kiện) {
// Mã được thực thi
}
Ví dụ sau sẽ xuất ra kết quả "Chúc một ngày cuối tuần vui vẻ!" nếu ngày hiện tại là thứ sáu:
Ví dụ
<?php
$d = date("D");
if ($d == "Fri") {
echo "Chúc một ngày cuối tuần vui vẻ!";
}
?>
Câu lệnh if...else
Bạn có thể nâng cao quyết định quá trình ra bằng cách cung cấp một sự lựa chọn thay thế thông qua thêm một lệnh else với lệnh if. Câu lệnh if ... else cho phép bạn thực thi một khối mã nếu điều kiện được chỉ định được đánh giá là true và một khối mã khác nếu nó được đánh giá là false. Nó có thể được viết như sau:
if (điều kiện) {
// Mã được thực thi nếu điều kiện là đúng
} else {
// Mã được thực hiện nếu điều kiện là sai
}
Ví dụ sau sẽ xuất ra "Chúc một ngày cuối tuần vui vẻ!" nếu ngày hiện tại là thứ sáu, nếu không phải nó sẽ xuất "Chúc một ngày tốt lành!"
Ví dụ
<?php
$d = date("D");
if ($d == "Fri") {
echo "Chúc một ngày cuối tuần vui vẻ!";
} else {
echo "Chúc một ngày tốt lành!";
}
?>
Câu lệnh if ... elseif ... else
Câu lệnh if ... elseif ... else một tuyên bố đặc biệt được sử dụng để kết hợp nhiều câu lệnh if ... else lại với nhau.
if (condition1) {
// Mã được thực thi nếu điềukiện1là đúng
} elseif (điềukiện2) {
// Mã được thực thi nếu điều kiện1 là sai và điều kiện2 là đúng
} else {
// Mã được thực thi nếu cả điều kiện1 và điều kiện2 là sai
}
Ví dụ sau đây sẽ xuất ra "Chúc một ngày cuối tuần vui vẻ!" nếu ngày hiện tại là thứ sáu và "Chúc một chủ nhật vui vẻ!" nếu ngày hiện tại là Chủ nhật, nếu không nó sẽ xuất ra "Chúc một ngày tốt lành!"
Ví dụ
<?php
$d = date("D");
if ($d == "Fri") {
echo "Chúc một ngày cuối tuần vui vẻ!";
} elseif ($d == "Sun") {
echo "Chúc một chủ nhật vui vẻ!";
} else {
echo "Chúc một ngày tốt lành!";
}
?>
Bạn sẽ tìm hiểu về câu lệnh switch-case trong PHP trong Lệnh Switch, Case trong PHP.
Toán tử bậc ba
Toán tử bậc ba cung cấp một cách viết tắt của câu lệnh if ... else. Toán tử bậc ba được biểu diễn bằng ký hiệu dấu hỏi (?
)và cần ba toán hạng: một điều kiện để kiểm tra, một kết quả cho true
và một kết quả cho false
.
Để hiểu cách hoạt động của toán tử này, hãy xem xét các ví dụ sau:
Ví dụ
<?php
if ($age < 18) {
echo 'Child'; // Display Child if age is less than 18
} else {
echo 'Adult'; // Display Adult if age is greater than or equal to 18
}
?>
Sử dụng toán tử bậc ba, mã tương tự có thể được viết theo cách nhỏ gọn hơn như sau:
Ví dụ
<?php echo ($age < 18) ? 'Child' : 'Adult';
?>
Toán tử bậc ba trong ví dụ trên chọn giá trị ở bên trái dấu hai chấm (tức là 'Child') nếu điều kiện đánh giá là true (tức là nếu $age
nhỏ hơn 18) và chọn giá trị ở bên phải dấu hai chấm (tức là ' Adult ') nếu điều kiện đánh giá là sai.
Mẹo: Mã được viết bằng toán tử bậc ba có thể khó đọc.Tuy nhiên, nó cung cấp một cách tuyệt vời để viết các câu lệnh if-else nhỏ gọn.
Toán tử liên kết Null trong PHP 7
PHP 7 giới thiệu một toán tử liên kết null mới (??
) mà bạn có thể sử dụng làm tốc ký khi bạn cần sử dụng toán tử bậc ba kết hợp với hàm isset()
.
Để hiểu điều này một cách tốt hơn, hãy xem xét dòng mã sau. Nó tìm nạp giá trị của $_GET['name']
, nếu nó không tồn tại hoặc NULL
, nó trả về giá trị 'anonymous'.
Ví dụ
<?php
$name = isset($_GET['name']) ? $_GET['name'] : 'anonymous';
?>
Sử dụng toán tử liên kết null, mã tương tự có thể được viết như sau:
Ví dụ
<?php
$name = $_GET['name'] ?? 'anonymous';
?>
Bạn có thể thấy, cú pháp trên nhỏ gọn và dễ viết hơn.