Sử dụng if, else, elseif điều kiện trong PHP
PHP Tutorial | by
Trong PHP, công cụ mạnh mẽ giúp chúng ta làm điều này chính là các câu lệnh điều kiện như if, else, và elseif. Những câu lệnh này cho phép chúng ta kiểm soát luồng hoạt động của chương trình, định hướng xem đoạn mã nào sẽ được thực thi dựa trên việc một điều kiện có đúng hay không. Hãy cùng tìm hiểu cách sử dụng chúng để làm cho các ứng dụng PHP của bạn trở nên thông minh và linh hoạt hơn nhé!
Câu lệnh điều kiện là gì ?
.jpg)
Hãy tưởng tượng bạn đang đi siêu thị và phải quyết định mua gì. Bạn sẽ nghĩ: "Nếu tôi có đủ tiền mua táo, tôi sẽ mua táo. Nếu không, tôi sẽ mua chuối." Trong lập trình, câu lệnh điều kiện cũng hoạt động y hệt như vậy!
Nói một cách đơn giản, câu lệnh điều kiện cho phép chương trình của bạn đưa ra quyết định. Thay vì chạy một mạch từ trên xuống dưới, chương trình có thể "nghĩ":
- "Nếu điều kiện này đúng, hãy làm A."
- "Nếu không, hãy làm B."
Điều này giúp chương trình trở nên linh hoạt và thông minh hơn rất nhiều. Nó sẽ thực thi các đoạn mã khác nhau tùy thuộc vào việc một điều kiện có đúng (true) hay sai (false).
Khi nào cần sử dụng câu lệnh điều kiện?
Câu lệnh điều kiện cực kỳ hữu ích và được dùng trong hầu hết mọi chương trình. Bạn sẽ cần đến chúng khi muốn:
Kiểm tra đầu vào của người dùng:
- Ví dụ: "Nếu người dùng nhập tên, hãy chào mừng họ. Nếu họ để trống, hãy yêu cầu nhập lại."
- Ví dụ: "Nếu mật khẩu nhập vào đúng, cho phép đăng nhập. Nếu sai, hiển thị thông báo lỗi."
Thay đổi hành vi của chương trình dựa trên dữ liệu:
- Ví dụ: "Nếu số dư tài khoản lớn hơn 0, cho phép rút tiền. Nếu không, báo tài khoản không đủ."
- Ví dụ: "Nếu nhiệt độ trên 30 độ C, hiển thị 'Trời nóng!'. Nếu dưới 0 độ C, hiển thị 'Trời rất lạnh!'"
Xử lý các tình huống khác nhau:
- Ví dụ: "Nếu sản phẩm còn hàng, thêm vào giỏ. Nếu hết hàng, hiển thị 'Hết hàng'."
- Ví dụ: "Nếu ngày hiện tại là cuối tuần, hiển thị 'Chúc mừng cuối tuần!'"
Ví dụ cơ bản: Sử dụng if
Hãy bắt đầu với loại cơ bản nhất: if. Lệnh if sẽ thực thi một đoạn mã chỉ khi điều kiện của nó đúng.
Cú pháp:
if (điều_kiện) {
// Đoạn mã này sẽ được thực thi NẾU điều_kiện đúng (true)
}
Ví dụ thực tế: Kiểm tra xem bạn có đủ tuổi để xem một bộ phim không.
<?php
$tuoiCuaBan = 18; // Đây là tuổi của bạn
// Điều kiện: Nếu tuổi của bạn lớn hơn hoặc bằng 18
if ($tuoiCuaBan >= 18) {
echo "Bạn đủ tuổi để xem phim này!";
}
echo "<br>"; // Xuống dòng cho dễ nhìn
$tuoiCuaToi = 16; // Giả sử một người khác 16 tuổi
// Điều kiện: Nếu tuổi của tôi lớn hơn hoặc bằng 18
if ($tuoiCuaToi >= 18) {
echo "Bạn đủ tuổi để xem phim này!"; // Đoạn này sẽ không được in ra vì $tuoiCuaToi không >= 18
}
echo "Chương trình kết thúc.";
?>
Giải thích ví dụ:
- Trong ví dụ đầu tiên,
$tuoiCuaBanlà 18. Điều kiện$tuoiCuaBan >= 18(18 lớn hơn hoặc bằng 18) là đúng (true). Vì vậy, đoạn văn bản "Bạn đủ tuổi để xem phim này!" được in ra. - Trong ví dụ thứ hai,
$tuoiCuaToilà 16. Điều kiện$tuoiCuaToi >= 18(16 lớn hơn hoặc bằng 18) là sai (false). Vì vậy, đoạn văn bản bên trong khốiifkhông được in ra.
Câu lệnh if trong PHP
Câu lệnh if là cánh cửa đầu tiên để chương trình của bạn "suy nghĩ". Mục đích của nó là thực thi một đoạn mã cụ thể chỉ khi một điều kiện cho trước là đúng (true). Nếu điều kiện đó sai (false), đoạn mã bên trong khối if sẽ bị bỏ qua hoàn toàn.
Cú pháp của if
Cú pháp của câu lệnh if rất đơn giản:
if (điều_kiện) {
// Mã sẽ được thực thi NẾU điều_kiện này đúng (true)
}
if: Từ khóa bắt đầu câu lệnh điều kiện.(điều_kiện): Đây là nơi bạn đặt biểu thức mà bạn muốn kiểm tra. Biểu thức này phải cho ra kết quả làtruehoặcfalse.{ ... }: Cặp dấu ngoặc nhọn này bao quanh khối mã sẽ được thực thi nếu điều kiện đúng.
Ví dụ cơ bản về if
Hãy xem một vài ví dụ để hiểu rõ hơn:
Ví dụ 1: Kiểm tra xem một số có lớn hơn 10 không
<?php
$soCanKiemTra = 15; // Gán giá trị 15 cho biến
// Kiểm tra: Nếu $soCanKiemTra lớn hơn 10
if ($soCanKiemTra > 10) {
echo "Số " . $soCanKiemTra . " lớn hơn 10.";
}
echo "<br>"; // Xuống dòng cho dễ nhìn
$soKhac = 7; // Gán giá trị 7 cho biến
// Kiểm tra: Nếu $soKhac lớn hơn 10
if ($soKhac > 10) {
echo "Số " . $soKhac . " lớn hơn 10."; // Đoạn này sẽ KHÔNG được in ra
}
echo "<p>Hoàn thành kiểm tra số.</p>";
?>
Giải thích:
- Với
$soCanKiemTra = 15, điều kiện15 > 10là đúng, nên dòng chữ "Số 15 lớn hơn 10." được in ra. - Với
$soKhac = 7, điều kiện7 > 10là sai, nên dòng chữ bên trong khốiifkhông được in ra.
Ví dụ 2: Kiểm tra xem người dùng đã đăng nhập chưa
Giả sử chúng ta có một biến $daDangNhap để theo dõi trạng thái đăng nhập.
<?php
$daDangNhap = true; // Giả sử người dùng đã đăng nhập (true)
// Kiểm tra: Nếu $daDangNhap là đúng
if ($daDangNhap) {
echo "Chào mừng bạn trở lại, Người dùng!";
}
echo "<br>";
$daDangNhapKhac = false; // Giả sử người dùng chưa đăng nhập (false)
// Kiểm tra: Nếu $daDangNhapKhac là đúng
if ($daDangNhapKhac) {
echo "Chào mừng bạn trở lại, Người dùng!"; // Đoạn này sẽ KHÔNG được in ra
}
echo "<p>Kiểm tra trạng thái đăng nhập hoàn tất.</p>";
?>
Giải thích:
- Khi
$daDangNhaplàtrue, điều kiệnif ($daDangNhap)là đúng, nên thông báo chào mừng xuất hiện. - Khi
$daDangNhapKhaclàfalse, điều kiệnif ($daDangNhapKhac)là sai, nên không có thông báo chào mừng nào được in ra từ khốiifnày.
Câu lệnh if...else trong PHP
Câu lệnh if...else nâng cấp khả năng ra quyết định của chương trình. Mục đích của nó là cung cấp hai nhánh hành động:
- Thực thi một đoạn mã nếu điều kiện đúng.
- Thực thi một đoạn mã khác nếu điều kiện sai.
Điều này đảm bảo rằng luôn có một hành động được thực hiện, bất kể điều kiện ban đầu đúng hay sai.
Cú pháp của if...else
Cú pháp của if...else mở rộng từ if bằng cách thêm từ khóa else:
if (điều_kiện) {
// Mã này sẽ được thực thi NẾU điều_kiện đúng
} else {
// Mã này sẽ được thực thi NẾU điều_kiện sai (tức là không đúng)
}
if (điều_kiện) { ... }: Giống như câu lệnhifthông thường.else { ... }: Khối mã này sẽ được thực thi khi và chỉ khiđiều_kiệntrongiflàfalse.
Ví dụ cơ bản về if...else
Ví dụ 1: Kiểm tra xem học sinh đỗ hay trượt
Giả sử điểm để đỗ là 50.
<?php
$diemHocSinhA = 65; // Điểm của học sinh A
// Kiểm tra: Nếu điểm lớn hơn hoặc bằng 50
if ($diemHocSinhA >= 50) {
echo "Học sinh A: Đỗ!";
} else {
echo "Học sinh A: Trượt.";
}
echo "<br>";
$diemHocSinhB = 40; // Điểm của học sinh B
// Kiểm tra: Nếu điểm lớn hơn hoặc bằng 50
if ($diemHocSinhB >= 50) {
echo "Học sinh B: Đỗ!";
} else {
echo "Học sinh B: Trượt.";
}
echo "<p>Kiểm tra kết quả học tập hoàn tất.</p>";
?>
- Giải thích:
- Với
$diemHocSinhA = 65, điều kiện65 >= 50là đúng, nên "Học sinh A: Đỗ!" được in ra. - Với
$diemHocSinhB = 40, điều kiện40 >= 50là sai, nên khốielseđược thực thi và "Học sinh B: Trượt." được in ra.
- Với
Ví dụ 2: Hiển thị "Chào buổi sáng" hoặc "Chào buổi chiều" tùy theo thời gian
Chúng ta sẽ dùng hàm date("H") để lấy giờ hiện tại (định dạng 24 giờ).
<?php
$gioHienTai = date("H"); // Lấy giờ hiện tại (ví dụ: 10, 15, 22...)
echo "Bây giờ là: " . $gioHienTai . " giờ.<br>";
// Kiểm tra: Nếu giờ hiện tại nhỏ hơn 12 (trước giữa trưa)
if ($gioHienTai < 12) {
echo "Chào buổi sáng!";
} else {
echo "Chào buổi chiều!";
}
echo "<p>Lời chào đã được hiển thị.</p>";
?>
- Giải thích:
- Nếu bạn chạy đoạn mã này vào lúc 10 giờ sáng,
$gioHienTaisẽ là 10. Điều kiện10 < 12là đúng, nên "Chào buổi sáng!" được in ra. - Nếu bạn chạy đoạn mã này vào lúc 3 giờ chiều (15 giờ),
$gioHienTaisẽ là 15. Điều kiện15 < 12là sai, nên khốielseđược thực thi và "Chào buổi chiều!" được in ra.
- Nếu bạn chạy đoạn mã này vào lúc 10 giờ sáng,
Như bạn thấy, if và if...else là những công cụ cơ bản nhưng cực kỳ mạnh mẽ, giúp chương trình của bạn phản ứng linh hoạt với các tình huống khác nhau. Tiếp theo, chúng ta sẽ khám phá if...elseif...else để xử lý nhiều điều kiện hơn nữa!
Câu lệnh if...elseif...else trong PHP
Mục đích của if...elseif...else
Câu lệnh if...elseif...else được sử dụng khi bạn cần kiểm tra nhiều điều kiện khác nhau một cách tuần tự. Thay vì chỉ có hai lựa chọn (đúng hoặc sai như if...else), bạn có thể có nhiều nhánh rẽ cho chương trình.
- Kiểm tra nhiều điều kiện một cách tuần tự: Chương trình sẽ lần lượt kiểm tra từ điều kiện đầu tiên (
if), rồi đến điều kiện thứ hai (elseif), thứ ba, v.v... - Thực thi đoạn mã tương ứng với điều kiện đầu tiên đúng: Ngay khi PHP tìm thấy một điều kiện đúng, nó sẽ thực thi đoạn mã trong khối đó và bỏ qua tất cả các khối
elseifvàelsecòn lại. Đây là điểm rất quan trọng cần nhớ. - Nếu không có điều kiện nào đúng, thực thi đoạn mã trong khối
else(nếu có): Nếu không có bất kỳ điều kiện nào trongifhayelseiflà đúng, thì khốielse(nếu bạn định nghĩa) sẽ được thực thi như một lựa chọn "mặc định" hoặc "không có cái nào khớp".
Cú pháp của if...elseif...else
Cú pháp của if...elseif...else cho phép bạn thêm bao nhiêu elseif tùy thích giữa if và else:
if (điều_kiện_1) {
// Mã này sẽ được thực thi nếu điều_kiện_1 đúng
} elseif (điều_kiện_2) {
// Mã này sẽ được thực thi nếu điều_kiện_2 đúng
// (chỉ khi điều_kiện_1 sai)
} elseif (điều_kiện_N) { // Bạn có thể thêm nhiều elseif ở đây
// Mã này sẽ được thực thi nếu điều_kiện_N đúng
// (chỉ khi tất cả các điều kiện phía trước đều sai)
} else {
// Mã này sẽ được thực thi nếu KHÔNG CÓ điều kiện nào ở trên đúng
}
Ví dụ cơ bản về if...elseif...else
Ví dụ 1: Xếp loại học lực (Giỏi, Khá, Trung bình, Yếu)
Giả sử chúng ta có các mức điểm như sau:
- Điểm >= 90: Giỏi
- Điểm >= 70: Khá
- Điểm >= 50: Trung bình
- Điểm < 50: Yếu
<?php
$diemSo = 85; // Điểm của học sinh
echo "Điểm số của học sinh là: " . $diemSo . "<br>";
if ($diemSo >= 90) {
echo "Xếp loại: Giỏi";
} elseif ($diemSo >= 70) {
echo "Xếp loại: Khá";
} elseif ($diemSo >= 50) {
echo "Xếp loại: Trung bình";
} else {
echo "Xếp loại: Yếu";
}
echo "<hr>"; // Đường kẻ ngang để phân biệt
$diemSoKhac = 45; // Một điểm số khác
echo "Điểm số của học sinh là: " . $diemSoKhac . "<br>";
if ($diemSoKhac >= 90) {
echo "Xếp loại: Giỏi";
} elseif ($diemSoKhac >= 70) {
echo "Xếp loại: Khá";
} elseif ($diemSoKhac >= 50) {
echo "Xếp loại: Trung bình";
} else {
echo "Xếp loại: Yếu";
}
?>
Giải thích:
Với $diemSo = 85:
85 >= 90là sai.85 >= 70là đúng. Vì đây là điều kiện đầu tiên đúng, "Xếp loại: Khá" được in ra, và các khốielseifvàelsecòn lại bị bỏ qua.
Với $diemSoKhac = 45:
45 >= 90là sai.45 >= 70là sai.45 >= 50là sai.- Không có điều kiện nào đúng, nên khối
elseđược thực thi, in ra "Xếp loại: Yếu".
Ví dụ 2: Hiển thị thông báo dựa trên nhiệt độ (Nóng, Ấm, Lạnh)
Giả sử ngưỡng nhiệt độ:
- Nhiệt độ > 30°C: Nóng
- Nhiệt độ >= 15°C và <= 30°C: Ấm áp
- Nhiệt độ < 15°C: Lạnh
<?php
$nhietDo = 25; // Nhiệt độ hiện tại
echo "Nhiệt độ hiện tại: " . $nhietDo . "°C<br>";
if ($nhietDo > 30) {
echo "Thời tiết: Nóng!";
} elseif ($nhietDo >= 15 && $nhietDo <= 30) { // Sử dụng toán tử AND (&&) để kết hợp 2 điều kiện
echo "Thời tiết: Ấm áp.";
} else {
echo "Thời tiết: Lạnh!";
}
echo "<hr>";
$nhietDoKhac = 5; // Nhiệt độ khác
echo "Nhiệt độ hiện tại: " . $nhietDoKhac . "°C<br>";
if ($nhietDoKhac > 30) {
echo "Thời tiết: Nóng!";
} elseif ($nhietDoKhac >= 15 && $nhietDoKhac <= 30) {
echo "Thời tiết: Ấm áp.";
} else {
echo "Thời tiết: Lạnh!";
}
?>
Giải thích:
Với $nhietDo = 25:
25 > 30là sai.25 >= 15 && 25 <= 30là đúng (vì cả hai phần đều đúng). "Thời tiết: Ấm áp." được in ra.
Với $nhietDoKhac = 5:
5 > 30là sai.5 >= 15 && 5 <= 30là sai (vì5 >= 15là sai).- Không có điều kiện nào đúng, nên khối
elseđược thực thi, in ra "Thời tiết: Lạnh!".
if...elseif...else là một cấu trúc rất linh hoạt, cho phép bạn xử lý hầu hết các tình huống ra quyết định phức tạp trong chương trình của mình.
Các toán tử so sánh thường dùng trong PHP
Các toán tử so sánh dùng để so sánh hai giá trị với nhau và trả về kết quả là true (đúng) hoặc false (sai). Kết quả này sau đó sẽ được sử dụng bởi các câu lệnh điều kiện.
== (Bằng): So sánh giá trị.
- Kiểm tra xem hai giá trị có bằng nhau hay không. Không quan tâm đến kiểu dữ liệu.
Ví dụ:
<?php $a = 5; $b = 5; $c = "5"; // Chuỗi "5" echo "5 == 5: "; var_dump($a == $b); // true (5 bằng 5) echo "5 == \"5\": "; var_dump($a == $c); // true (5 bằng chuỗi "5" - PHP tự động chuyển đổi kiểu) ?>
=== (Giống hệt): So sánh giá trị và kiểu dữ liệu.
- Kiểm tra xem hai giá trị có bằng nhau và cùng kiểu dữ liệu hay không. Nghiêm ngặt hơn
==.
Ví dụ:
<?php $a = 5; $b = 5; $c = "5"; // Chuỗi "5" echo "5 === 5: "; var_dump($a === $b); // true (5 giống hệt 5) echo "5 === \"5\": "; var_dump($a === $c); // false (5 không giống hệt chuỗi "5" vì khác kiểu dữ liệu) ?>
!= hoặc <> (Không bằng): So sánh giá trị.
- Kiểm tra xem hai giá trị có khác nhau hay không.
Ví dụ:
<?php $x = 10; $y = 20; $z = "10"; echo "10 != 20: "; var_dump($x != $y); // true (10 không bằng 20) echo "10 != \"10\": "; var_dump($x != $z); // false (10 bằng chuỗi "10" khi so sánh giá trị) ?>
!== (Không giống hệt): So sánh giá trị và kiểu dữ liệu.
- Kiểm tra xem hai giá trị có khác nhau hoặc khác kiểu dữ liệu.
Ví dụ:
<?php $x = 10; $y = 20; $z = "10"; echo "10 !== 20: "; var_dump($x !== $y); // true (10 không giống hệt 20) echo "10 !== \"10\": "; var_dump($x !== $z); // true (10 không giống hệt chuỗi "10" vì khác kiểu dữ liệu) ?>
> (Lớn hơn): Kiểm tra xem giá trị bên trái có lớn hơn giá trị bên phải không.
- Ví dụ:
7 > 5trả vềtrue.
< (Nhỏ hơn): Kiểm tra xem giá trị bên trái có nhỏ hơn giá trị bên phải không.
- Ví dụ:
3 < 8trả vềtrue.
>= (Lớn hơn hoặc bằng): Kiểm tra xem giá trị bên trái có lớn hơn hoặc bằng giá trị bên phải không.
- Ví dụ:
10 >= 10trả vềtrue,12 >= 10trả vềtrue.
<= (Nhỏ hơn hoặc bằng): Kiểm tra xem giá trị bên trái có nhỏ hơn hoặc bằng giá trị bên phải không.
- Ví dụ:
4 <= 4trả vềtrue,2 <= 4trả vềtrue.
Các toán tử Logic thường dùng trong điều kiện phức tạp bằng PHP
Các toán tử logic được dùng để kết hợp nhiều điều kiện đơn lẻ lại với nhau, tạo thành một điều kiện phức tạp hơn.
&& (AND - Và): Cả hai điều kiện đều phải đúng.
- Kết quả là
truechỉ khi tất cả các điều kiện con đều làtrue. Nếu có ít nhất một điều kiện con làfalse, kết quả sẽ làfalse. - Ví dụ: Bạn muốn đăng nhập, bạn cần cả tên đăng nhập đúng
VÀmật khẩu đúng.
<?php
$tenDangNhapDung = true;
$matKhauDung = true;
$matKhauSai = false;
// Cả hai đều đúng
if ($tenDangNhapDung && $matKhauDung) {
echo "Đăng nhập thành công! <br>"; // Sẽ được in ra
}
// Tên đăng nhập đúng nhưng mật khẩu sai
if ($tenDangNhapDung && $matKhauSai) {
echo "Đăng nhập thành công! <br>"; // Sẽ KHÔNG được in ra
}
?>
|| (OR - Hoặc): Ít nhất một trong các điều kiện phải đúng.
- Kết quả là
truenếu có ít nhất một điều kiện con làtrue. Chỉ khi tất cả các điều kiện con đều làfalsethì kết quả mới làfalse. - Ví dụ: Bạn được giảm giá nếu bạn là sinh viên
HOẶCmua số lượng lớn.
<?php
$laSinhVien = true;
$muaSoLuongLon = false;
$khachHangThuong = false;
// Là sinh viên (đúng) hoặc mua số lượng lớn (sai)
if ($laSinhVien || $muaSoLuongLon) {
echo "Bạn được giảm giá! <br>"; // Sẽ được in ra
}
// Không phải sinh viên (sai) và không mua số lượng lớn (sai)
if ($khachHangThuong || $muaSoLuongLon) {
echo "Bạn được giảm giá! <br>"; // Sẽ KHÔNG được in ra
}
?>
! (NOT - Không): Đảo ngược giá trị logic của điều kiện.
- Biến
truethànhfalsevàfalsethànhtrue. - Ví dụ: Nếu bạn không phải là quản trị viên, bạn không thể truy cập.
<?php
$laQuanTriVien = true;
$khongLaQuanTriVien = false;
// Nếu KHÔNG phải quản trị viên ($laQuanTriVien là true, !true sẽ là false)
if (!($laQuanTriVien)) {
echo "Bạn không có quyền truy cập. <br>"; // Sẽ KHÔNG được in ra
}
// Nếu KHÔNG phải quản trị viên ($khongLaQuanTriVien là false, !false sẽ là true)
if (!($khongLaQuanTriVien)) {
echo "Bạn không có quyền truy cập. <br>"; // Sẽ được in ra
}
?>
Kết bài
Như vậy, chúng ta đã cùng nhau tìm hiểu về các câu lệnh điều kiện cốt lõi trong PHP: if, if...else, và if...elseif...else. Bạn có thể thấy, những công cụ này không chỉ là nền tảng mà còn là trái tim của mọi chương trình. Chúng cho phép ứng dụng của bạn "suy nghĩ" và "ra quyết định", từ những tác vụ đơn giản như hiển thị lời chào theo giờ, đến các tính năng phức tạp hơn như xác thực người dùng hay phân loại dữ liệu.
Việc nắm vững cách sử dụng các toán tử so sánh (==, ===, >, <, v.v.) và toán tử logic (&&, ||, !) để xây dựng các điều kiện là chìa khóa để khai thác tối đa sức mạnh của chúng. Bằng cách kết hợp linh hoạt, bạn có thể tạo ra các luồng logic đa dạng, giúp chương trình của mình phản ứng một cách thông minh và hiệu quả với mọi tình huống.