Điều kiện luồng

Các lệnh if, elseif …else và switch trong được sử dụng để điều khiển luồng dựa trên các điều kiện khác nhau. Bạn có thể sử dụng các lệnh điều kiện trong code của bạn để điều khiển luồng. PHP hỗ trợ 3 lệnh điều khiển luồng sau: Lệnh if...else  − Sử dụng lệnh này nếu bạn muốn ...

Các lệnh if, elseif …else và switch trong được sử dụng để điều khiển luồng dựa trên các điều kiện khác nhau.

Bạn có thể sử dụng các lệnh điều kiện trong code của bạn để điều khiển luồng. PHP hỗ trợ 3 lệnh điều khiển luồng sau:

  • Lệnh if...else − Sử dụng lệnh này nếu bạn muốn thực thi một tập hợp code khi một điều kiện là true và tập code khác nếu điều kiện là không true.

  • Lệnh elseif − Được sử dụng với lệnh if…else để thực thi một tập hợp code nếu một trong các điều kiện là true.

  • Lệnh switch − Được sử dụng nếu bạn muốn lựa chọn một trong các khối code để được thực thi. Lệnh switch được sử dụng để tránh sử dụng một khối if…elseif…else dài.

  • Lệnh If...Else trong PHP

    Nếu bạn muốn thực thi một đoạn code nếu một điều kiện là true và khối code khác nếu một điều kiện là false, bạn sử dụng lệnh if…else trong PHP.

  • Cú Pháp

  • if (điều_kiện)
       phần code này được thực thi nếu điều kiện là true
    else
       phần code này được thực thi nếu điều kiện là false

    Ta có ví dụ như sau

  • <html>
       <body>
       
          <?php
             $d=date("D");
             
             if ($d=="Sat")
                echo "Chúc cuối tuần vui vẻ!"; 
             
             else
                echo "Chúc một ngày vui vẻ!"; 
          ?>
       
       </body>
    </html>

    VD có 2 kết quả nếu hôm này là Thứ 7 thì sẽ là  "Chúc cuối tuần vui vẻ " nếu không phải thì sẽ là " Chúc một ngày vui vẻ "

  • Ví Dụ 2

  • $so_can_kiem_tra = 12;
    $so_du = $so_can_kiem_tra % 2;
    if ($so_du == 0){
         echo 'Số '.$so_can_kiem_tra.' Là Số Chẵn';
    }else{
      echo 'không phải là số';
    }
  • Dòng thứ 1:  Gán cho biến $so_can_kiem_tra giá trị = 12

    Dòng thứ 2: Chia biến $so_can_kiem_tra / 2 và lấy số dư của phép chia (toán tử % dùng để chia lấy số dư, nếu bạn chưa biết toán tử này vui lòng đọc lại bài toán tử và biểu thức trong php).

    Dòng thứ 3:  Kiểm tra số dư có bằng 0 hay không? Nếu bằng không thì nó sẽ chạy dòng lệnh bên trong thẻ mở {  và thẻ đóng }. Nội dung câu lệnh bên trong sẽ xuất ra màn hình thống báo là số chẵn.

    Chạy chương trình này kết quả sẽ xuất ra là "Số 12 Là Số Chẵn". Bây giờ giả sử ta đổi giá trị 12 thành 13 thì kết quả sẽ không xuất ra màn hình vì số 13 chia cho 2 sẽ dư = 1, mà điều kiện để xuất ra câu thông báo là số dư phải bằng 0 => không đúng điều kiện nên trình biên dịch sẽ không chạy vào đoạn code bên trong lệnh if.

  • Lệnh elseif trong PHP

  •  

    Nếu bạn muốn thực thi một khối code nếu một trong các điều kiện là true, thì bạn nên sử dụng lệnh elseif trong PHP.

    Cú pháp
    if (điều_kiện_1)
       phần code này được thực thi nếu điều kiện 1 là true;
    elseif (điều_kiện_2)
       phần code này được thực thi nếu điều kiện 2 là true;
    else
       phần code này được thực thi nếu các điều kiện là false;
  • Ví Dụ

  • <html>
       <body>
       
          <?php
             $d=date("D");
             
             if ($d=="Fri")
                echo "Chúc cuối tuần vui vẻ!";
             
             elseif ($d=="Sat")
                echo "Thứ 7 vui vẻ!"; 
             
             else
                echo "Chúc một ngày vui vẻ!"; 
          ?>
          
       </body>
    </html>

    Ví dụ sau sẽ cho kết quả "Thứ 7 tuần vui vẻ!" nếu hôm nay là Saturday, và "Cuối tuần vui vẻ!" nếu hôm nay là Friday. Nếu không, nó sẽ cho kết quả "Chúc một ngày vui vẻ!":

  • Ví Dụ 

  • <?php
    $mau = 'màu đỏ';
      
    if ($mau == 'màu xanh'){
        echo 'Đây là màu xanh';
    }
    else if ($mau == 'màu đỏ')
    {
        echo "Đây là màu đỏ";
    }
    else if ($mau == 'màu vàng'){
        echo 'Đây là màu vàng';
    }
    else{
        echo 'Các màu khác';
    }
    ?>
  • Bước 1: Nhập màu đỏ vào biến $mau

    Bước 2: Đến dòng lệnh kiểm tra phải màu đỏ không, vì nó bằng ‘màu đỏ’ nên bên trong khối lệnh if của màu đỏ sẽ được chạy và xuất ra màn hình dòng chữ “Đây là màu đỏ”, đồng thời nó không chạy các dòng lệnh bên dưới nữa.

  •  

  • Lệnh Switch trong PHP

  • Trong đó lệnh switchcase và default là các từ khóa trong PHP. Các chuỗi câu lệnh có thể là lệnh đơn (1 lệnh) hoặc lệnh ghép (kết hợp nhiều lệnh) và không cần đặt trong cặp dấu ngoặc nhọn {}. Ở mỗi dòng lệnh lựa chọn (case) nó sẽ so sánh xem biến truyền vào $variable có bằng với biến điều kiện $value_1, $value_2 hay không, nếu trùng với case nào thì những câu lệnh bên trong case đó sẽ được thực hiện, đồng thời dòng lệnh break sẽ kết thúc câu lệnh switch. Nếu không có lựa chọn (case) nào đúng thì mặc định nó sẽ chạy vào chuỗi dòng lệnh trong default, lệnh default trong mệnh đề rẻ nhánh switch có thể có hoặc không.

    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à ==.

  • Nếu bạn muốn lựa chọn một trong nhiều khối code để được thực thi, bạn nên sử dụng lệnh switch trong PHP. Lệnh switch được sử dụng để tránh các khối if…elseif…else dài.

  • Lệnh If và  lệnh Switch là 2 dạng lệnh rẻ nhánh trong PHP, tuy nhiên lệnh if vẫn linh hoạt hơn switch và tốc độ cũng nhanh hơn. Với những bài toán ta thể hiện bằng switch thì hoàn toàn có thể chuyển thành if, ngược lại những bài toán ta dùng lệnh if để thể hiện thì chưa chắc đã chuyển qua lệnh switch đươc.

  • Cú pháp

    switch (biểu_thức)
    {
       case nhãn_1:
          phần code này được thực thi nếu biểu_thức = nhãn_1
          break;  
       
       case nhãn_2:
          phần code này được thực thi nếu biểu_thức = nhãn_2
          break;
       ...
          default:
       
       phần code này được thực thi nếu 
       biểu_thức là khác với nhãn_1, nhãn_2, ...
    }
    Ví Dụ
  • Cơ chế làm việc của lệnh  switch  là tuyệt vời. Đầu tiên, nó ước lượng biểu thức đã cho, sau đó tìm một nhãn để so khớp với giá trị kết quả đã ước lượng. Nếu tìm thấy một so khớp, thì code được liên kết với nhãn sẽ được thực thi hoặc nếu không có nhãn khớp với kết quả đó, thì lệnh sẽ thực thi bất kỳ khối code mặc định đã cho nào.
  • <html>
       <body>
          
          <?php
             $d=date("D");
             
             switch ($d)
             {
                case "Mon":
                   echo "Hôm nay là Thứ Hai";
                   break;
                
                case "Tue":
                   echo "Hôm nay là Thứ Ba";
                   break;
                
                case "Wed":
                   echo "Hôm nay là Thứ Tư";
                   break;
                
                case "Thu":
                   echo "Hôm nay là Thứ Năm";
                   break;
                
                case "Fri":
                   echo "Hôm nay là Thứ Sáu";
                   break;
                
                case "Sat":
                   echo "Hôm nay là Thứ Bảy";
                   break;
                           
                default:
                   echo "Còn ngày này là thứ mấy ???";
             }
    
          ?>
       </body>
    </html>

    Kết quả sẽ ra là "Hôm nay là Thứ Bảy"; Còn nếu không có trong các trường hợp kia thì sẽ dơi vào thẻ default "Còn ngày này là thứ mấy ???"

  • Cũng như  lệnh if,  lệnh switch cũng có thể lồng nhau.

<?php
$number = 12;
$midle = null;
switch ($number)
{
    case 12 : // nếu $number = 12
        $midle = $number % 2; // lấy số dư
        switch ($midle)
        {
            case 0 : // nếu số dư = 0
                echo 'Số chẵn';
                break;
            default :
                echo 'Số lẽ';
                break;
        }
        break;
    default: // nếu không phải 12 thì không làm gì
        break;
}
?>
  • Nếu $midle = 0 thì sẽ ra "số chẵn" nếu khác thì sẽ là "số lẻ"

  • Mình có VD các bạn xem nó sẽ trả về true hay false

$nam = 1990;
$kiem_tra = ($nam % 4 == 0 && $nam % 100 != 0 || $nam % 400 == 0 OR $nam % 300 == 0 OR $nam % 100 != 0 && 0 !== 1);
if ($kiem_tra == true){
    echo 'Năm ' . $nam . 'Là Năm Nhuận';
}elseif($kiem_tra == false){
  echo 'Năm'. $nam .'Không phải năm nhuận';
}

 

chu do viết 20:48 ngày 21/09/2018

bài này viết cũng tạm ổn.bạn nên có thêm các ví dụ

Son Dong viết 11:50 ngày 22/09/2018
  • Nên sử dụng switch case trong bài toán mul-ti choice, biểu thức điều kiện tính toán phức tạp nhưng phải có giá trị nguyên.
  • Nên sử dụng if else trong bài toán ít trường hợp, các biểu thức điều kiện đơn giản
+3