Trong bài này, chúng ta sẽ tìm hiểu về vòng lặp for
và foreach
trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.
1. Vòng lặp for trong PHP
Vòng lặp for
được sử dụng để chạy một khối code trong một số lần nhất định. Cú pháp:
for (<khởi đầu>; <điều kiện lặp>; <bước nhảy>) {
//code block
}
Nguyên lý hoạt động của vòng lặp for như sau:
<khởi đầu> khởi tạo giá trị của biến và chỉ thực thi một lần duy nhất. Sau đó, nếu <điều kiện lặp> đúng (true) thì thực thi các dòng lệnh trong vòng lặp for. Nếu <điều kiện lặp> sai (false) thì kết thúc vòng lặp.
<bước nhảy> sẽ thay đổi giá trị của biến lúc <khởi đầu>. Giá trị của biến này sẽ được kiểm tra lại (kiểm tra <điều kiện lặp>) sau mỗi lần lặp.
Ví dụ hiển thị số từ 0 đến 10 trong PHP
<?php
for ($x = 0; $x <= 10; $x++) {
echo $x." ";
}
?>
Kết quả
0 1 2 3 4 5 6 7 8 9 10
Một số lưu ý khi sử dụng vòng lặp for trong PHP
– Giá trị <khởi đầu> không nhất thiết lúc nào cũng là 0.
– <bước nhảy> không phải lúc nào cũng chỉ tăng lên 1.
– Vòng lặp for phải có <điều kiện lặp> hợp lý và tránh trường hợp lặp vô hạn.
<?php
for ($x = 5; $x <= 100; $x+=7) {
echo $x. " ";
}
?>
Kết quả
5 12 19 26 33 40 47 54 61 68 75 82 89 96
Trong ví dụ trên, giá trị <khởi đầu> được khởi tạo là 5, <bước nhảy> tăng giá trị lên 7 trong mỗi lần lặp.
2. Vòng lặp foreach trong PHP
Vòng lặp foreach
giúp duyệt qua các phần tử trong một mảng (array). Vòng lặp foreach chỉ làm việc trên mảng (array) và lặp qua mỗi cặp key/value trong mảng. Cú pháp:
foreach ($array as $value) {
//code to be executed;
}
Trong đó, $array là mảng cần duyệt, $value là giá trị trong từng phần tử của mảng.
<?php
$domainnames = array("gochocit.com", "google.com", "facebook.com", "twitter.com");
foreach ($domainnames as $name) {
echo "$name<br>";
}
?>
Kết quả
gochocit.com
google.com
facebook.com
twitter.com
Với những mảng kết hợp (associative array) thì có thể sử dụng foreach để duyệt các phần tử như sau:
<?php
$marks = array("Nam"=>5.5, "Hoa"=>7.1, "An"=>9.2);
foreach ($marks as $name=>$mark) {
echo "$name: $mark<br>";
}
?>
Kết quả
Nam: 5.5
Hoa: 7.1
An: 9.2