Bài 10: Cách sử dụng câu lệnh điều kiện IF, Else, Elseif trong Lập trình PHP

“Hãy hòa nhã với những kẻ dở hơi. Ai biết được ngày sau bạn có thể phải làm việc cho một kẻ như vậy.”

Bill Gates

Microsoft

Trong bài học này chúng ta sẽ học cách sử dụng câu lệnh điều kiện if, if…else, if…elseif…else (Conditional Statements) để thực hiện các hành động trong lập trình nói chung và Lập trình PHP nói riêng.

Các loại câu lệnh điều kiện trong lập trình 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 một điều kiện kiểm tra logic hoặc so sánh trong thời gian chạy.

Điều này có nghĩa là: Bạn có thể tạo các điều kiện kiểm tra dưới dạng biểu thức đánh giá là True (Đúng) hoặc False (Sai) và dựa trên các kết quả này, bạn có thể thực hiện một số hành động nhất định nào đó.

Ví dụ: Nếu giá trị của a lớn hơn giá trị của b thì thực hiện a – b. Nếu không thì thực hiện a + b.

Một số câu lệnh điều kiện bạn có thể sử dụng:

  • Câu lệnh if
  • Câu lệnh if…else
  • Câu lệnh if…elseif…else
  • Câu lệnh switch…case

Chúng ta sẽ tìm hiểu cách sử dụng các câu lệnh điều kiện này trong những phần dưới đây:

1. Cách sử dụng câu lệnh điều kiện if trong PHP

Câu lệnh if được sử dụng để thực thi một khối mã chỉ khi điều kiện được chỉ định đánh giá 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){
    // Code thực thi ở đây
}

VD: Xuất ra lời chúc “Chúc cuối tuần vui vẻ!” nếu ngày hôm nay là thứ 6:

<?php
$d = date("D");
if($d == "Fri"){
    echo "Chúc cuối tuần vui vẻ!";
}
?>

2. Cách sử dụng câu lệnh điều kiện if…else trong PHP

Bạn có thể ra quyết định tốt hơn bằng cách cung cấp lựa chọn thay thế nếu điều kiện bị sai.

Câu lệnh if … else sẽ cho phép bạn thực thi một khối mã nếu:

  • Điều kiện được chỉ định được ước tính là True
  • Thực hiện một khối mã khác nếu điều kiện đó được ước tính là False.

Câu lệnh if else có thể được viết, như thế này:

if(điều kiện){
    // Code thực thi nếu điều kiện đúng
} else{
    // Code thực thi nếu điều kiện sai
}

Ví dụ sau sẽ xuất ra ‘Chúc cuối tuần vui vẻ!’ nếu ngày hôm nay là thứ 6, nếu không nó sẽ xuất ra ‘Chúc một ngày tốt lành!’

<?php
$d = date("D");
if($d == "Fri"){
    echo "Chúc cuối tuần vui vẻ!";
} else{
    echo "Chúc một ngày tốt lành!";
}
?>

3. Cách sử dụng câu lệnh if…elseif…else trong PHP

Câu lệnh if…elseif…else là một câu lệnh đặc biệt được sử dụng để kết hợp nhiều câu lệnh if … khác nhau.

if(điều kiện 1){
    // Code thực thi nếu điều kiện 1 True
} elseif(điều kiện 2){
    // Code thực thi nếu điều kiện 1 False và điều kiện 2 True
} else{
    // Code thực thi nếu cả điều kiện 1 và điề kiện 2 đều sai
}

Ví dụ sau sẽ xuất ra:

  • ‘Chúc cuối tuần vui vẻ!’ nếu ngày hiện tại là thứ Sáu
  • ‘Chúc 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!’
<?php
$d = date("D");
if($d == "Fri"){
    echo "Chúc cuối tuần vui vẻ!";
} elseif($d == "Sun"){
    echo "Chúc chủ nhật vui vẻ!";
} else{
    echo "Chúc một ngày tốt lành!";
}
?>

Ok. vậy là bạn đã biết 3 loại câu lệnh có điều kiện trong PHP. Phần Switch…case thì chúng ta sẽ học trong bài với. Hôm nay như vậy là đủ rồi.

BONUS: Toán tử Terary

Toán tử ternary cung cấp một cách viết nhanh, ngắn gọn hơn của câu lệnh if…else.

Toán tử ternary được biểu thị bằng ký hiệu dấu hỏi “?” Và 3 toán hạng sau nó:

  • 1 biểu thức điều kiện
  • 1 kết quả nếu biểu thức điều kiện True
  • 1 kết quả nếu biểu thức điều kiện False

Để hiểu cách thức hoạt động của toán tử này, hãy xem xét các ví dụ sau:

<?php
if($age < 18){
    echo 'Còn được bố mẹ nuôi'; // Tuổi vẫn còn nhỏ hơn 18
} else{
    echo 'Tự làm mà kiếm ăn'; // Tuổi đã bằng hoặc lớn hơn 18. Tự kiếm ăn đi
}
?>

Nếu chúng ta sử dụng toán tử ternary, đoạn mã tương tự có thể được viết theo cách gọn hơn.

<?php echo ($age < 18) ? 'Còn được bố mẹ nuôi' : 'Tự làm mà kiếm ăn đi'; ?>

Toán tử ternary trong ví dụ trên:

  • Nếu $age nhỏ hơn 18 thì: Chọn giá trị ở bên trái dấu hai chấm
  • Nếu $age lớn hơn hoặc bằng 18 thì: Chọn giá trị ở bên phải dấu hai chấm

Viết bằng toán tử Ternary thì có thể khó đọc nhưng nếu cần tối ưu code thì cách viết này hiệu quả hơn. Còn bạn mới bắt đầu thì cứ viết hẳn ra để còn dễ đọc lại code.

BONUS: Toán tử hợp nhất trong PHP 7

PHP 7 giới thiệu một toán tử Null Coalescing (??).

Bạn có thể sử dụng như một viết ngắn gọn nếu bạn cần sử dụng một toán tử ternary kết hợp với hàm (function) isset().

Để hiểu rõ điều này theo cách tốt hơn hãy xem xét dòng mã sau đây.

Nó lấy giá trị của $_GET [‘name’]. Còn nếu nó không tồn tại hoặc NULL, nó sẽ trả về ‘
anonymous’.

<?php
$name = isset($_GET['name']) ? $_GET['name'] : 'anonymous';
?>

Thay vì như vậy. Để tối ưu code. Chúng ta có thể sử dụng toán tử Null Coalescing “??” như sau:

<?php
$name = $_GET['name'] ?? 'anonymous';
?>

Như bạn có thể thấy cú pháp sau này nhỏ gọn hơn và dễ viết hơn. Và cũng tối ưu hơn.

Thay vì phải kiểm tra điều kiện tồn tại hay không thì chúng ta thực hiện việc lấy luôn giá trị. Nếu nó không tồn tại hoặc NULL thì trả về “anonymous”. Thế thôi.

Tổng kết

Như vậy là bạn đã biết cách sử dụng toán tử if, if…else, if…elseif…else trong lập trình PHP.

Bạn cũng biết cách viết ngắn gọn câu lệnh điều kiện bằng cách sử dụng toán tử Ternary “?” và toán tử Null Coalescing “??” trong PHP.

Bài tới chúng ta sẽ tìm hiểu sâu về câu lệnh Switch…case.

Có thể bạn muốn xem

Leave a reply

Please enter your comment!
Please enter your name here