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ì ?
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,
$tuoiCuaBan
là 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,
$tuoiCuaToi
là 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ốiif
khô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àtrue
hoặ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 > 10
là đúng, nên dòng chữ "Số 15 lớn hơn 10." được in ra. - Với
$soKhac = 7
, điều kiện7 > 10
là sai, nên dòng chữ bên trong khốiif
khô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
$daDangNhap
làtrue
, điều kiệnif ($daDangNhap)
là đúng, nên thông báo chào mừng xuất hiện. - Khi
$daDangNhapKhac
là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ốiif
nà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ệnhif
thông thường.else { ... }
: Khối mã này sẽ được thực thi khi và chỉ khiđiều_kiện
trongif
là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 >= 50
là đúng, nên "Học sinh A: Đỗ!" được in ra. - Với
$diemHocSinhB = 40
, điều kiện40 >= 50
là 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,
$gioHienTai
sẽ là 10. Điều kiện10 < 12
là đú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ờ),
$gioHienTai
sẽ là 15. Điều kiện15 < 12
là 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
elseif
vàelse
cò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 trongif
hayelseif
là đú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 >= 90
là sai.85 >= 70
là đúng. Vì đây là điều kiện đầu tiên đúng, "Xếp loại: Khá" được in ra, và các khốielseif
vàelse
còn lại bị bỏ qua.
Với $diemSoKhac = 45
:
45 >= 90
là sai.45 >= 70
là sai.45 >= 50
là 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 > 30
là sai.25 >= 15 && 25 <= 30
là đúng (vì cả hai phần đều đúng). "Thời tiết: Ấm áp." được in ra.
Với $nhietDoKhac = 5
:
5 > 30
là sai.5 >= 15 && 5 <= 30
là sai (vì5 >= 15
là 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 > 5
trả 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 < 8
trả 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 >= 10
trả vềtrue
,12 >= 10
trả 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 <= 4
trả vềtrue
,2 <= 4
trả 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à
true
chỉ 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à
true
nế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àfalse
thì kết quả mới làfalse
. - Ví dụ: Bạn được giảm giá nếu bạn là sinh viên
HOẶC
mua 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
true
thànhfalse
vàfalse
thà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.