PHP - Vòng lặp For
Sơ đồ của Vòng lặp "for"
Trước khi chúng ta đi sâu vào cú pháp và ví dụ, hãy hình dung cách mà vòng lặp for
hoạt động. Vòng lặp for
giống như một băng chuyền di chuyển qua một bộ hướng dẫn. Nó bắt đầu với điều kiện ban đầu, kiểm tra xem nó có đáp ứng điều kiện cuối cùng hay không, và sau đó thực thi khối mã bên trong. Sau khi khối mã được thực thi, nó cập nhật bộ đếm và lặp lại quy trình cho đến khi điều kiện cuối cùng không còn được đáp ứng.
st=>start: Bắt đầu
e=>end: Kết thúc
op1=>operation: Khởi tạo bộ đếm
cond=>condition: Kiểm tra điều kiện cuối
op2=>operation: Cập nhật bộ đếm
op3=>operation: Thực thi khối mã
cond2=>condition: Điều kiện cuối đã được đáp ứng?
op4=>operation: Không, quay lại op2
op5=>operation: Có, đi tới kết thúc
st->op1->cond
cond(yes)->op3->op2->cond2
cond2(no)->op4->op2
cond2(yes)->op5->e
Cú pháp của Vòng lặp "for"
Cú pháp cơ bản của vòng lặp for
trong PHP như sau:
for (khởi tạo; điều kiện; tăng/giảm) {
// mã cần thực thi
}
- Khởi tạo: Đây là nơi bạn khởi tạo biến bộ đếm của bạn.
- Điều kiện: Đây là điều kiện phải是真 để vòng lặp tiếp tục. Nếu nó là giả, vòng lặp sẽ dừng.
- Tăng/Giảm: Đây là nơi bạn cập nhật bộ đếm. Bạn có thể tăng hoặc giảm nó dựa trên yêu cầu của bạn.
Ví dụ
Hãy bắt đầu với một ví dụ đơn giản in số từ 1 đến 5 sử dụng vòng lặp for
.
<?php
for ($i = 1; $i <= 5; $i++) {
echo $i . " ";
}
?>
Trong ví dụ này, chúng ta khởi tạo $i
bằng 1, kiểm tra xem $i
có nhỏ hơn hoặc bằng 5 hay không, và sau đó tăng $i
lên 1 sau mỗi lần lặp. Lệnh echo
in giá trị của $i
theo sau là một khoảng trống.
Vòng lặp "for" Vô hạn
Hãy cẩn thận khi viết vòng lặp, vì vòng lặp vô hạn có thể làm crash chương trình của bạn hoặc khiến nó không phản hồi. Dưới đây là ví dụ về một vòng lặp vô hạn:
<?php
for (;;) {
echo "Vòng lặp này sẽ chạy mãi mãi!";
}
?>
Vòng lặp này không có khởi tạo, điều kiện hoặc tăng/giảm, vì vậy nó sẽ tiếp tục chạy không giới hạn. Để dừng nó, bạn sẽ cần phải ngắt thủ công việc thực thi, ví dụ như nhấn Ctrl + C
trong terminal.
Vòng lặp "for" Giảm dần
Một vòng lặp for
giảm dần tương tự như một vòng lặp tăng dần, nhưng thay vì tăng bộ đếm, nó giảm nó. Dưới đây là ví dụ đếm ngược từ 5 đến 1:
<?php
for ($i = 5; $i >= 1; $i--) {
echo $i . " ";
}
?>
Sử dụng Cấu trúc "for…endfor"
PHP cũng cung cấp một cách viết tắt cho vòng lặp for
bằng cách sử dụng cấu trúc foreach
. Tuy nhiên, vì chúng ta đang tập trung vào vòng lặp for
truyền thống, chúng ta sẽ tiếp tục với cấu trúc đó.
Lặp qua Mảng Indexed Sử dụng Vòng lặp "for"
Bạn có thể sử dụng vòng lặp for
để lặp qua một mảng indexed, truy cập từng phần tử bằng chỉ số của nó. Dưới đây là ví dụ:
<?php
$fruits = array("apple", "banana", "cherry");
for ($i = 0; $i < count($fruits); $i++) {
echo $fruits[$i] . " ";
}
?>
Trong ví dụ này, chúng ta sử dụng hàm count()
để xác định số lượng phần tử trong mảng $fruits
và sau đó lặp qua từng phần tử bằng chỉ số của nó.
Lặp qua Mảng Associative Sử dụng Vòng lặp "for"
Khi làm việc với mảng associative, bạn có thể sử dụng vòng lặp for
để lặp qua cả khóa và giá trị. Dưới đây là ví dụ:
<?php
$students = array(
"Alice" => 25,
"Bob" => 27,
"Charlie" => 22
);
foreach ($students as $name => $age) {
echo "$name is $age years old.<br>";
}
?>
Trong ví dụ này, chúng ta sử dụng cấu trúc foreach
để lặp qua mảng associative $students
. Biến $name
giữ khóa (tên học sinh), và biến $age
giữ giá trị (tuổi của học sinh). Chúng ta sau đó in ra tên và tuổi của từng học sinh.
Sử dụng Vòng lặp "for" Nested trong PHP
Đôi khi, bạn có thể cần sử dụng vòng lặp for
lồng nhau để thực hiện các nhiệm vụ phức tạp hơn. Dưới đây là ví dụ in bảng nhân:
<?php
for ($i = 1; $i <= 5; $i++) {
for ($j = 1; $j <= 5; $j++) {
echo $i * $j . "\t";
}
echo "<br>";
}
?>
Trong ví dụ này, vòng lặp ngoài lặp qua các hàng (từ 1 đến 5), và vòng lặp trong lặp qua các cột (cũng từ 1 đến 5). Tích của số hàng và số cột được in ra, tạo ra bảng nhân.
Đó là tất cả về giới thiệu vòng lặp for
trong PHP! Nhớ rằng, thực hành là chìa khóa để thành thạo, vì vậy hãy cố gắng viết mã và thử nghiệm với các kịch bản khác nhau. Chúc bạn may mắn với việc编码!
Credits: Image by storyset