Lệnh If, Else trong PHP
Trong hướng dẫn này, bạn sẽ học cách sử dụng các câu lệnh if, if-else và if-elseif-else của PHP để thực thi các hoạt động khác nhau dựa trên các điều kiện
Câu lệnh điều kiện trong PHP
Giống như hầu hết các ngôn ngữ lập trình, 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 haitrue
hoặcfalse
và dựa trên những kết quả này, bạn 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ệnhif
- Câu lệnh if ... else
- Câu lện if ... elseif .... else
- Các switch ... case
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:
// Mã được thực thi
}
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:
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ệnhif ... elsecho 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ư thế này:
// 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 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.
// 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 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ủacâu lệnhif ... 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ả chotrue
và một kết quả chofalse
.
Để 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:
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ặcNULL
, 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';
?>
Như bạn có thể thấy, cú pháp sau này nhỏ gọn và dễ viết hơn.