Biểu thức điều kiện trong PHP

Post on: 2016-11-09 00:51:46 | in: PHP
Biểu thức điều kiện là tập hợp các câu điều kiện để thực hiện các hành động khác nhau dựa trên các điều kiện khác nhau. Trong PHP có các câu lệnh IF, IF...ELSE, IF...ELSE IF, SWITCH.

Sau khi tìm hiểu về các toán tử trong PHP, bài này chúng ta sẽ tìm hiểu một thành phần quan trọng nữa trong PHP đó là các biểu thức điều kiện.
Cú pháp của biểu thức điều kiện trong PHP cũng tương tự như các ngôn ngữ lập trình khác như Java, C rất đơn giản và dễ học.

Tóm tắt nội dung

- Biểu thức điều kiện là gì?
- Câu lệnh IF.
- Câu lệnh IF...ELSE.
- Câu lệnh IF...ELSE IF...ELSE.
- Câu lệnh IF...ELSE lồng nhau.
- Câu lệnh SWITCH…CASE. 
- So sánh Switch case và if trong php. 

Biểu thức điều kiện là gì?

Biểu thức điều kiện là tập hợp các câu điều kiện được sử dụng để thực hiện các hành động khác nhau dựa trên các điều kiện khác nhau.
Các câu lệnh điều khiển trong PHP gồm: Câu lệnh IF, IF...ELSE, IF...ELSE IF, SWITCH.

Câu lệnh điều khiển IF trong PHP

Câu lệnh if cho phép ta đưa ra những quyết định thực hiện câu lệnh dựa trên việc kiểm tra điều kiện nào đó đúng hay sai.

Cú pháp

if(bieu-thuc-dieu-kien){
  //Câu lệnh
}

Ví dụ chương trình kiểm tra số chẵn sau:

<?php
  $so=100;
  if($so%2==0){
    echo "Số ".$so." là số chẵn";
  }
?>

Lưu chương trình và chạy thử kết quả sẽ là "Số 100 là số chẵn".

Giải thích:

- Đầu tiên ta gán giá trị 100 cho biến $so.
- Thực hiện biểu thứ điều kiện kiểm tra xem kết quả của phép chia lấy số dư có bằng 0 không.
- Nếu kết quả bằng 0 thì thực hiện câu lệnh xuất ra màn hình.

Chú ý: Trong một khối lệnh các câu lệnh phải nằm trong dấu {}, nếu trong khối lệnh chỉ có một câu lệnh có thể không cần thêm {}.

Câu lệnh IF...ELSE trong PHP

Câu lệnh IF...ELSE được dùng để kiểm tra và rẽ nhánh cách mệnh đề của bài toán.
Từ ví dụ kiểm tra số chẵn ở phần trên nảy sinh ra một vấn đề, nếu số nhập vào là một số lẻ thì sao?
Để giải quyết vấn đề này chúng ta cần đến câu lệnh IF...ELSE trong PHP. 

Cú pháp

<?php
  $so=101;
  if($so%2==0){
    echo "Số ".$so." là số chẵn";
  }else{
    echo "Số ".$so." là số lẻ";
  }
?>

Lưu chương trình và chạy thử kết quả sẽ là: "Số 101 là số lẻ".

Giải thích:

- Như mục tiêu ban đầu cần giải quyết sau khi kiểm tra biểu thức $so%2 kết quả bằng 1 nên chương trình sẽ bỏ qua
khối lệnh if và chạy vào khổi lệnh else để xuất ra màn hình kết quả: "Số 101 là số lẻ".
Như chú ý ở trên với chương trình này ta có thể không cần dùng dấu ngoặc kép để bao các lệnh.

Câu lệnh IF...ELSE IF...ELSE (kết hợp nhiều câu lệnh IF...ELSE) trong PHP

Trong thực tế không phải lúc nào cũng chỉ có điều kiện IF...ELSE mà có nhiều câu điều kiện khác nhau.
Buộc chúng ta phải kết hợp các câu điều kiện IF...ELSE lại với nhau. Cùng xem ví dụ dưới để hiểu thêm về phần này.

Ví dụ:  Cho điểm số của 1 học sinh. Nếu điểm lớn hơn hoặc bằng 8.5 thì được HS Giỏi, từ 7-8.4 thì được HS Khá,  từ 5.5-6.9 thì được HS TB, và nhỏ hơn 5.5 thì được HS Yếu.
Bắt đầu với chương trình của chúng ta.

<?php
  $diem=8;//gán giá trị cho biến.
  if($diem >= 8.5){//kiểm tra số có lớn hơn 8.5 ko nếu không bỏ qua
    echo "Em này được HS Giỏi nhé";
  }else if ($diem < 8.5&&$diem>=7){//Kiểm tra số có lớn hơn hoặc bằng 7 và nhỏ hơn 8.5 không
    echo "Em này được HS Khá nhé";//in ra màng hình.
  }else if ($diem < 7&&$diem>=5.5){
    echo "Em này chỉ được HS Trung bình thôi";
  }else{
    echo "Rât tiếc em này HS Yếu ở lại lớp";
  }
?>

Giải thích:

- Do chưa học đến phần xử lý dữ liệu nhập từ bên ngoài nên chúng ta sẽ nhập trực tiếp vào chương trình.
- Gán biến $diem=8 sau đó thực hiện biểu thức điều kiện.
- Biến $diem được so sánh với các giá trị từ trên xuống dưới, nếu đúng nó sẽ dừng lại và in ra kết quả.
- Kết quả của cương trình này là: "Em này được HS Khá nhé".
- Các bạn hãy thay đổi biến $diem để xem kết quả sẽ như thế nào nhé.

Câu lệnh IF...ELSE lồng nhau.

Qua ví dụ trên ta đã hiểu được cách kết hợp nhiều câu lệnh IF...ELSE, nhưng tất cả những ví dụ trên chỉ chạy
câu lệnh IF...ELSE trên một tầng. Vậy liệu câu lệnh IF...ELSE có thể lồng vào nhau không?

Ví dụ: Cho một số, kiểm tra số là chẵn hay lẻ. Nếu số đó lẻ kiểm trả xem nó có lớn hơn 10 không. Nếu nó lớn hơn 10 thì in ra màn hình: "Đây là số lẻ lớn hơn 10", ngược lại in ra: "Đây là số lẻ nhỏ hơn 10".

<?php
  $so=11;//khai báo biến
  if($so%2!=0){//kiểm tra số có lẻ ko
    if($so>10){//nếu lẻ kiểm tra xem lớn hơn 10 ko, nếu đúng chạy lệnh dưới
      echo "Đây là số lẻ lớn hơn 10";// in ra màn hình
    }else{//ngược lại chạy câu lệnh
      echo "Đây là số lẻ nhỏ hơn 10"; // in ra màn hình
    } 
  }
?>

Câu lệnh switch case trong PHP

Cũng giống như câu điều kiện IF...ELSE câu lệnh switch case cũng có khả năng kiểm tra và rẽ nhánh cách mệnh đề của bài toán.
Nó cho phép đưa ra nhiều cách lựa chọn để giá trị của biểu thức truyền vào. Nếu biểu thức truyền vào có giá trị trùng với biểu
thức điều kiện thì câu lệnh bên trong sẽ được thực hiện.

Cú pháp

switch(bieu-thuc-truyen-vao){
  case bt-dk1:
    //câu lệnh 1 
  break;
  case bt-dk2:
    //câu lệnh 2
  break;
  .
  .
  default:
    //câu lệnh mặc định
  break
}

Giá trị case gồm các kiễu dữ liệu string, interger, boolean, null, float hoặc một biểu thức có kết quả trả về thuộc các loại dữ liệu đó và toán tử so sánh trong switch luôn luôn là ==.

Ví dụ:  Viết chương trình nhập vào một số từ 1-7 tương đương với 7 ngày trong tuần: 1 là chủ nhật, 2-7 là thứ 2-thứ 7, ngoài ra thông báo không có ngày đó.

<?php
$so=7;
switch($so){
  case 1:
    echo "hôm nay là chủ nhật";
  break;
  case 2:
    echo "hôm nay là thứ 2";
  break;
  case 3:
    echo "hôm nay là thứ 3";
  break;
  case 4:
    echo "hôm nay là thứ tư";
  break;
  case 5:
    echo "hôm nay là thứ 5";
  break;
  case 6:
    echo "hôm nay là thứ 6";
  break;
  case 7:
    echo "hôm nay là thứ 7";
  break;
  default:
    echo"Không có ngày này";
  break;
}
?>

Giải thích:

- Gán giá trị cho biến bằng 7.
- Ở case thứ nhất $so = 1 mới thực hiện nên bỏ qua.
- Tương tự với các case tiếp theo, đến case 7 biến $so=7 thỏa mãn điều kiện nên kết quả được in ra là: "hôm nay là thứ 7".
- Thay giá trị của biến $so để kiểm tra kết quả nhé.

Switch lồng nhau trong PHP

Cũng giống như câu lệnh if, câu lệnh switch cũng có thể lồng nhau.

Ví dụ: 

<?php
$thang = 2;
$nam = 2016;
switch ($nam)
{
    case 2016 : // nếu $nam = 2016  
        switch ($thang)
        {
            case 1 : // $thang = 1
                echo 'Tháng '.$thang.' có 31 ngày';
                break;
            case 2 : // $thang = 2
                echo 'Tháng '.$thang.' có 29 ngày';
                break;
            case 3 : // $thang = 3
                echo 'Tháng '.$thang.' có 31 ngày';
                break;
            default :
                echo 'Không có tháng này nhé';
                break;
        }
        break;
    default: //Không phải 2016 thì chưa làm gì
    break;
}
?>

Kết quả là "Tháng 2 có 29 ngày" nhé.

So sánh switch và if trong PHP

Cả 2 lệnh if và switch đểu là lệnh rẽ nhánh trong PHP, tuy nhiên lệnh if linh hoạt hơn, các lệnh thực hiện bằng lệnh switch
đều có thể thực hiện bằng câu lệnh if nhưng điều ngược lại chưa chắc đã đúng.

Biểu thức điều kiện trong PHP trong PHP cũng không quá khó phải không nào. Bài tiếp theo chúng ta sẽ tìm hiểu về vòng lặp trong PHP. 

Tag: php cơ bản