Tổng Hợp Câu Lệnh Điều Khiển Trong PHP

Tổng Hợp Câu Lệnh Điều Khiển Trong PHP

Tìm hiểu đầy đủ các câu lệnh điều khiển trong PHP như if, else, switch, match, for, while, foreach, break, continue, return, exit... kèm ví dụ thực tế, dễ hiểu và dễ áp dụng, chi tiết như nào hãy cùng chúng tôi phân tích:

Câu lệnh điều khiển là nền tảng quan trọng của mọi chương trình PHP. Dù bạn chỉ viết một đoạn mã nhỏ hay phát triển một hệ thống lớn, việc điều hướng luồng thực thi luôn đóng vai trò quyết định đến tính chính xác, hiệu suất và khả năng bảo trì của mã nguồn.

Trong PHP, các câu lệnh điều khiển giúp chương trình đưa ra quyết định, lặp lại công việc, bỏ qua một phần mã hoặc kết thúc quá trình xử lý khi cần thiết. Nếu không có chúng, chương trình chỉ thực hiện các dòng lệnh theo thứ tự từ trên xuống dưới mà không thể phản ứng với dữ liệu đầu vào.

Bài viết này của Web Mới sẽ tổng hợp đầy đủ các câu lệnh điều khiển phổ biến trong PHP, giải thích nguyên lý hoạt động, ưu nhược điểm, trường hợp sử dụng cùng nhiều ví dụ thực tế để bạn dễ dàng áp dụng vào dự án.

Tổng Hợp Câu Lệnh Điều Khiển Trong PHP

Câu lệnh điều khiển trong PHP là gì?

Câu lệnh điều khiển (Control Statements) là nhóm lệnh cho phép lập trình viên kiểm soát hướng đi của chương trình thay vì thực hiện tuần tự từng dòng mã.

Thông qua các câu lệnh này, chương trình có thể:

  • Thực hiện điều kiện đúng hoặc sai.
  • Lặp lại nhiều lần một đoạn mã.
  • Dừng hoặc bỏ qua vòng lặp.
  • Rẽ nhánh theo nhiều trường hợp khác nhau.
  • Kết thúc một hàm hoặc một file đang chạy.

Đây là nhóm kiến thức bắt buộc đối với bất kỳ ai học PHP.

Phân loại các câu lệnh điều khiển trong PHP

PHP chia các câu lệnh điều khiển thành nhiều nhóm khác nhau.

Nhóm Câu lệnh Mục đích
Điều kiện if, else, elseif, switch, match Ra quyết định
Vòng lặp for, while, do...while, foreach Lặp dữ liệu
Điều khiển vòng lặp break, continue Dừng hoặc bỏ qua vòng lặp
Kết thúc chương trình return, exit, die Ngắt quá trình thực thi

Câu lệnh if

if là câu lệnh điều kiện được sử dụng nhiều nhất trong PHP. Khi biểu thức trả về giá trị đúng (true), đoạn mã bên trong sẽ được thực thi.

Cú pháp

<?php
$age = 20;

if ($age >= 18) {
    echo "Đủ tuổi";
}
?>

Hoạt động

Nếu điều kiện đúng, chương trình chạy phần thân của if. Nếu sai, toàn bộ khối lệnh sẽ bị bỏ qua.

Khi nào nên dùng?

  • Kiểm tra đăng nhập.
  • Kiểm tra quyền người dùng.
  • Xác thực dữ liệu.
  • Kiểm tra giá trị nhập.

Câu lệnh else

else được sử dụng khi điều kiện của if không đúng.

<?php
$number = 3;

if ($number % 2 == 0) {
    echo "Số chẵn";
} else {
    echo "Số lẻ";
}
?>

Nhờ else, chương trình luôn có hướng xử lý ngay cả khi điều kiện ban đầu không thỏa mãn.

Câu lệnh elseif

Khi có nhiều điều kiện cần kiểm tra liên tiếp, sử dụng elseif sẽ giúp mã nguồn rõ ràng hơn.

<?php
$score = 8;

if ($score >= 9) {
    echo "Xuất sắc";
} elseif ($score >= 7) {
    echo "Khá";
} elseif ($score >= 5) {
    echo "Trung bình";
} else {
    echo "Yếu";
}
?>

Lưu ý

  • Điều kiện sẽ được kiểm tra từ trên xuống.
  • Khi gặp điều kiện đúng đầu tiên, các điều kiện phía dưới sẽ không được kiểm tra nữa.

Câu lệnh switch

switch phù hợp khi cần so sánh một biến với nhiều giá trị khác nhau.

<?php
$day = 2;

switch ($day) {
    case 1:
        echo "Thứ Hai";
        break;

    case 2:
        echo "Thứ Ba";
        break;

    default:
        echo "Không xác định";
}
?>

Vai trò của break

Nếu không có break, chương trình sẽ tiếp tục chạy sang các case tiếp theo dù đã tìm thấy kết quả.

Khi nào nên dùng switch?

  • Menu quản trị.
  • Phân loại trạng thái.
  • Xử lý mã lỗi.
  • Điều hướng chức năng.

Câu lệnh match

Từ PHP 8, match được bổ sung nhằm thay thế switch trong nhiều trường hợp.

Ưu điểm:

  • Viết ngắn gọn.
  • So sánh nghiêm ngặt.
  • Không cần break.
  • Trả về giá trị trực tiếp.
<?php
$status = 200;

$message = match ($status) {
    200 => "OK",
    404 => "Not Found",
    500 => "Server Error",
    default => "Unknown"
};

echo $message;
?>

Đối với các dự án PHP hiện đại, match thường được ưu tiên hơn switch nếu chỉ cần ánh xạ giá trị.

Vòng lặp for

for là vòng lặp được sử dụng khi bạn biết trước số lần cần thực hiện một công việc. Đây là lựa chọn phổ biến trong các thao tác xử lý chỉ số mảng, sinh dữ liệu hoặc thực hiện các phép tính lặp.

Cấu trúc của vòng lặp for

Một vòng lặp for gồm ba phần:

  • Khởi tạo biến đếm.
  • Điều kiện tiếp tục lặp.
  • Biểu thức thay đổi biến đếm sau mỗi lần lặp.
<?php
for ($i = 1; $i <= 5; $i++) {
    echo $i . "<br>";
}
?>

Kết quả:

1
2
3
4
5

Khi nào nên sử dụng for?

  • Lặp theo số lượng xác định.
  • Duyệt mảng bằng chỉ số.
  • Sinh bảng HTML.
  • Tạo danh sách số.
  • Thực hiện các thuật toán tính toán.

Ví dụ tạo bảng cửu chương

<?php
for ($i = 1; $i <= 10; $i++) {
    echo "5 x " . $i . " = " . (5 * $i) . "<br>";
}
?>

Vòng lặp while

while sẽ kiểm tra điều kiện trước mỗi lần lặp. Nếu điều kiện đúng, chương trình tiếp tục thực hiện. Khi điều kiện sai, vòng lặp kết thúc.

Cú pháp

<?php
$i = 1;

while ($i <= 5) {
    echo $i;
    $i++;
}
?>

Đặc điểm của while

  • Có thể không chạy lần nào nếu điều kiện ban đầu sai.
  • Phù hợp với các trường hợp chưa biết trước số lần lặp.
  • Thường dùng khi đọc dữ liệu hoặc xử lý theo điều kiện.

Ví dụ đọc dữ liệu từ mảng

<?php
$colors = ["Đỏ", "Xanh", "Vàng"];
$i = 0;

while ($i < count($colors)) {
    echo $colors[$i] . "<br>";
    $i++;
}
?>

Vòng lặp do...while

do...while gần giống while nhưng khác ở chỗ đoạn mã luôn được thực hiện ít nhất một lần trước khi kiểm tra điều kiện.

Cú pháp

<?php
$i = 1;

do {
    echo $i;
    $i++;
} while ($i <= 5);
?>

Điểm khác giữa while và do...while

while do...while
Kiểm tra điều kiện trước Thực hiện trước rồi mới kiểm tra
Có thể không chạy lần nào Luôn chạy tối thiểu một lần

Khi nào nên dùng?

  • Menu dòng lệnh.
  • Xác nhận người dùng.
  • Lặp nhập dữ liệu cho đến khi hợp lệ.

Vòng lặp foreach

foreach là vòng lặp được thiết kế riêng để duyệt mảng và các đối tượng có thể lặp. Đây là một trong những câu lệnh được sử dụng nhiều nhất trong PHP.

Duyệt giá trị

<?php
$fruits = ["Táo", "Cam", "Xoài"];

foreach ($fruits as $fruit) {
    echo $fruit . "<br>";
}
?>

Duyệt cả khóa và giá trị

<?php
$user = [
    "name" => "Nguyễn Văn A",
    "age" => 25,
    "city" => "Hà Nội"
];

foreach ($user as $key => $value) {
    echo $key . ": " . $value . "<br>";
}
?>

Ưu điểm của foreach

  • Không cần sử dụng biến đếm.
  • Đọc mã nguồn dễ hơn.
  • Ít xảy ra lỗi vượt chỉ số mảng.
  • Thích hợp với hầu hết thao tác xử lý dữ liệu.

Câu lệnh break

break được sử dụng để thoát ngay khỏi vòng lặp hoặc khối switch khi gặp điều kiện mong muốn.

<?php
for ($i = 1; $i <= 10; $i++) {

    if ($i == 6) {
        break;
    }

    echo $i . "<br>";
}
?>

Chương trình chỉ in từ 1 đến 5 rồi kết thúc vòng lặp.

Ứng dụng thực tế

  • Dừng tìm kiếm khi đã tìm thấy kết quả.
  • Kết thúc vòng lặp khi dữ liệu không còn.
  • Thoát khỏi menu lựa chọn.
  • Dừng xử lý khi gặp lỗi.

Câu lệnh continue

Khác với break, continue không kết thúc vòng lặp mà chỉ bỏ qua lần lặp hiện tại và chuyển sang lần tiếp theo.

<?php
for ($i = 1; $i <= 10; $i++) {

    if ($i == 5) {
        continue;
    }

    echo $i . "<br>";
}
?>

Kết quả sẽ không hiển thị số 5 nhưng vòng lặp vẫn tiếp tục đến 10.

Khi nào nên dùng continue?

  • Bỏ qua dữ liệu không hợp lệ.
  • Loại trừ các phần tử không cần xử lý.
  • Tăng khả năng đọc của mã nguồn thay vì lồng quá nhiều câu lệnh if.

Câu lệnh return

return được sử dụng để kết thúc việc thực thi của một hàm và trả kết quả về nơi đã gọi hàm đó. Đây là một trong những câu lệnh quan trọng nhất khi lập trình PHP theo hướng tái sử dụng mã nguồn.

Ví dụ trả về một giá trị

<?php
function sum($a, $b)
{
    return $a + $b;
}

echo sum(5, 8);
?>

Khi gặp return, chương trình sẽ ngay lập tức thoát khỏi hàm. Mọi câu lệnh nằm phía sau return trong cùng hàm sẽ không được thực thi.

Ví dụ minh họa

<?php
function demo()
{
    echo "Dòng 1<br>";

    return;

    echo "Dòng 2";
}

demo();
?>

Kết quả chỉ hiển thị "Dòng 1".

Khi nào nên sử dụng return?

  • Trả kết quả tính toán.
  • Thoát sớm khỏi hàm khi điều kiện không hợp lệ.
  • Giảm số lượng khối if lồng nhau.
  • Tăng khả năng đọc của mã nguồn.

Câu lệnh exit

exit được dùng để kết thúc toàn bộ chương trình PHP ngay tại vị trí đang thực thi. Sau exit, mọi đoạn mã còn lại trong file sẽ không được chạy.

<?php
echo "Bắt đầu chương trình<br>";

exit("Chương trình đã kết thúc.");

echo "Dòng này sẽ không được thực thi";
?>

Đặc điểm của exit

  • Dừng toàn bộ file PHP.
  • Có thể hiển thị thông báo khi kết thúc.
  • Thường dùng khi xảy ra lỗi nghiêm trọng.
  • Được sử dụng nhiều trong các script xử lý.

Câu lệnh die

die() thực chất là bí danh (alias) của exit(). Hai câu lệnh này hoạt động hoàn toàn giống nhau.

<?php
$conn = false;

if (!$conn) {
    die("Không thể kết nối cơ sở dữ liệu.");
}

echo "Đã kết nối thành công.";
?>

Trong thực tế, nhiều lập trình viên sử dụng die() khi muốn dừng chương trình do lỗi, còn exit() thường được dùng khi kết thúc theo chủ đích. Tuy nhiên về mặt kỹ thuật, cả hai không có sự khác biệt.

Sử dụng câu lệnh điều khiển lồng nhau

Các câu lệnh điều khiển trong PHP có thể kết hợp với nhau để giải quyết các bài toán phức tạp. Ví dụ, một vòng lặp có thể chứa nhiều điều kiện if hoặc switch.

<?php
$students = [
    ["name" => "An", "score" => 9],
    ["name" => "Bình", "score" => 6],
    ["name" => "Chi", "score" => 4]
];

foreach ($students as $student) {

    if ($student["score"] >= 8) {
        echo $student["name"] . " - Giỏi<br>";
    } elseif ($student["score"] >= 5) {
        echo $student["name"] . " - Đạt<br>";
    } else {
        echo $student["name"] . " - Chưa đạt<br>";
    }

}
?>

Việc kết hợp nhiều câu lệnh điều khiển giúp chương trình linh hoạt hơn, nhưng cũng cần hạn chế lồng quá nhiều cấp để tránh mã nguồn khó đọc.

Những lỗi thường gặp khi sử dụng câu lệnh điều khiển

Quên dấu ngoặc nhọn

Nhiều lỗi phát sinh khi lập trình viên chỉ viết một dòng lệnh rồi sau đó bổ sung thêm mã nhưng quên đặt cặp dấu ngoặc nhọn.

Nên luôn sử dụng dấu ngoặc nhọn ngay cả khi khối lệnh chỉ có một dòng để tăng tính an toàn và dễ bảo trì.

Quên cập nhật biến trong vòng lặp

Đây là nguyên nhân phổ biến dẫn đến vòng lặp vô hạn.

<?php
$i = 1;

while ($i <= 10) {

    echo $i;

}
?>

Trong ví dụ trên, biến $i không được tăng nên điều kiện luôn đúng.

Thiếu break trong switch

Khi bỏ quên break, chương trình sẽ tiếp tục chạy các case phía sau, tạo ra kết quả ngoài mong muốn.

Lạm dụng if lồng nhau

Việc lồng quá nhiều if khiến mã nguồn dài, khó bảo trì và khó phát hiện lỗi. Trong nhiều trường hợp, có thể sử dụng return sớm hoặc match để mã ngắn gọn hơn.

Nhầm lẫn giữa == và ===

Toán tử == chỉ so sánh giá trị, còn === so sánh cả giá trị lẫn kiểu dữ liệu. Việc sử dụng không đúng có thể khiến điều kiện hoạt động khác với mong muốn.

Một số kinh nghiệm giúp mã nguồn dễ đọc hơn

  • Ưu tiên return sớm để giảm số cấp lồng nhau.
  • Đặt tên biến thể hiện rõ ý nghĩa.
  • Sử dụng foreach thay cho for khi duyệt mảng nếu không cần chỉ số.
  • Chia các đoạn xử lý lớn thành nhiều hàm nhỏ.
  • Không viết quá nhiều điều kiện trong một biểu thức.
  • Sử dụng match khi dự án chạy trên PHP 8 trở lên và chỉ cần ánh xạ giá trị.
  • Luôn căn lề và định dạng mã nguồn thống nhất.

Bảng tổng hợp các câu lệnh điều khiển trong PHP

Kết luận

Các câu lệnh điều khiển là nền tảng giúp PHP xử lý dữ liệu linh hoạt và xây dựng logic chương trình hiệu quả. Từ những câu lệnh điều kiện như if, elseif, switch, match cho đến các vòng lặp như for, while, foreach hay các câu lệnh break, continue, return, exit, mỗi loại đều có vai trò riêng và phù hợp với từng tình huống cụ thể.

Thay vì cố gắng ghi nhớ máy móc, bạn nên thực hành nhiều ví dụ thực tế để hiểu cách hoạt động của từng câu lệnh. Khi lựa chọn đúng cấu trúc điều khiển, mã nguồn sẽ ngắn gọn hơn, dễ đọc hơn và thuận tiện cho việc mở rộng, bảo trì trong các dự án PHP từ đơn giản đến chuyên nghiệp.

Câu lệnh Chức năng Mức độ sử dụng
if Kiểm tra một điều kiện Rất thường xuyên
else Xử lý khi điều kiện sai Rất thường xuyên
elseif Kiểm tra nhiều điều kiện Rất thường xuyên
switch Rẽ nhánh theo nhiều giá trị Thường xuyên
match Rẽ nhánh ngắn gọn trên PHP 8+ Thường xuyên
for Lặp với số lần xác định Rất thường xuyên
while Lặp theo điều kiện Thường xuyên
do...while Thực hiện ít nhất một lần Trung bình
foreach Duyệt mảng và đối tượng Rất thường xuyên
break Thoát khỏi vòng lặp hoặc switch Rất thường xuyên
continue Bỏ qua lần lặp hiện tại Thường xuyên
return Kết thúc hàm và trả kết quả Rất thường xuyên
exit / die Kết thúc chương trình Khi cần thiết
  • 0 Bình luận
Trần Thị Vân | Content Creator Web Mới
Trần Thị Vân
Trần Thị Vân là Content Creator tại Web Mới, phụ trách nghiên cứu, biên soạn nội dung và chia sẻ kiến thức về website, SEO, lập trình cùng các xu hướng công nghệ
Chia sẻ nội dung đánh giá của bạn về Tổng Hợp Câu Lệnh Điều Khiển Trong PHP
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Đăng ký tư vấn thiết kế website
Tìm hiểu 1 năm không bằng lắng nghe 1 câu tư vấn