[Bài 7] - PHP Cơ Bản - Vòng Lặp Trong PHP - Nội dung bài học gồm có: Vòng Lặp Là Gì, Các Loại Vòng Lặp Trong PHP, Các Loại Vòng Lặp Trong PHP, Vòng Lặp while trong PHP, Cú Pháp Vòng Lặp while, Vòng Lặp do...while, Cú Pháp Vòng Lặp do...while, Vòng Lặp for trong PHP, Cú Pháp, Vòng Lặp foreach trong PHP, Cú Pháp.
1. Vòng Lặp Là Gì
Vòng lặp được sử dụng để thực thi một đoạn code lặp đi lặp lại một số lần nhất định dựa trên giá trị trả về từ một điều kiện cho trước.
$i = 0;
while ($i < 10) {
echo "$i
";
$i++;
}
?>
2. Các Loại Vòng Lặp Trong PHP
Khi lập trình đôi khi chúng ta sẽ cần chạy một đoạn code lặp đi lặp lại, lúc này sử dụng vòng lặp sẽ giúp chúng ta tránh việc phải thêm vào tập tin PHP những đoạn code giống nhau này nhiều lần.
Trong PHP chúng ta có các loại vòng lặp sau:
Vòng lặp while.
Vòng lặp do...while.
Vòng lặp for.
Vòng lặp foreach.
Ở bài học tiếp theo chúng ta sẽ lần lượt tìm hiểu từng loại vòng lặp này.
3, Vòng Lặp while trong PHP
Vòng lặp while trong PHP được dùng để thực thi một đoạn mã lệnh lặp đi lặp lại khi một biểu thức điều kiện cho trước trả về giá trị là true.
4. Cú Pháp Vòng Lặp while
Vòng lặp while là vòng lặp đơn giản nhất so với cú pháp của các vòng lặp khác trong PHP. Cú pháp vòng lặp while như sau:
while (biểu thức điều kiện) {
// code trong vòng lặp ...
}
Ở ví dụ sử dụng vòng lặp while dưới đây, giá trị của biểu thức $i <= 10 được kiểm tra tại mỗi lần lặp. Nếu như biểu thức này trả về giá trị true thì câu lệnh bên trong vòng lặp sẽ được thực thi:
$i = 1;
while ($i <= 10) {
echo $i++;
}
?>
Lưu ý: Đoạn code bên trong vòng lặp echo $i++ vừa hiển thị giá trị của biến $i rồi sau đó tăng giá trị biến $i lên một đơn vị.
Nếu chúng ta không tăng giá trị của biến $i sau mỗi vòng lặp thì khi chạy vòng lặp while ở trên sẽ được lặp lại một số lần vô hạn. Lúc này vòng lặp được gọi là lặp vô hạn (hay infinite loop).
Đoạn code dưới đây khi chạy sẽ rơi vào tình trạng lặp vô hạn:
$i = 1;
while ($i <= 10) {
echo $i;
}
?>
Với các vòng lặp vô hạn, PHP có thể sẽ dùng nhiều dung lượng bộ nhớ tạm RAM và có thể dẫn tới lỗi tràn bộ nhớ.
5. Vòng Lặp do...while
Vòng lặp do-while tương tự như vòng lặp while tuy nhiên đoạn mã lệnh trong vòng lặp do-while luôn được thực thi ít nhất một lần.
6. Cú Pháp Vòng Lặp do...while
Vòng lặp do-while có cú pháp như sau:
do {
// code trong vòng lặp...
} while (biểu thức điều kiện)
Ví dụ:
$i = 0;
do {
echo $i++;
} while ($i < 10);
?>
Lưu ý: Vòng lặp do...while chỉ khác với vòng lặp while ở chỗ câu lệnh đặt trong do luôn được chạy lần đầu tiên.
Hãy xem ví dụ sau để thấy sự khác biệt này:
$i = 0;
do {
echo $i++;
} while ($i < 0);
?>
Như vậy mặc dù biểu thức điều kiện trong vòng lặp $i < 0 không trả về giá trị là true nhưng vòng lặp vẫn được chạy một lần.
7. Vòng Lặp for trong PHP
Vòng lặp for trong PHP được sử dụng khi chúng ta muốn chạy lặp lại một đoạn code một số lần cho trước.
8. Cú Pháp
Cú pháp vòng lặp for trong PHP cần sử dụng tới một biến đếm với ba biểu thức như sau:
for (khởi tạo biến đếm; kiểm tra biến đếm; tăng giá trị biến đếm) {
// code trong vòng lặp
}
Trong đó:
Biểu thức đầu tiên khởi tạo giá trị cho biến đếm và nó chỉ được chạy ở vòng lặp đầu tiên, trong các vòng lặp tiếp theo biểu thức này được bỏ qua
Biểu thức hai là biểu thức điều kiện để xác định có chạy code trong vòng lặp hay không. Biểu thức này kiểm tra giá trị biến đếm với một giá trị cho trước.
Biểu thức ba được chạy ở cuối mỗi vòng lặp để tăng giá trị của biến đếm thường là 1 đơn vị.
Ví dụ:
for ($i = 0; $i < 10; $i++) {
echo $i, "
";
}
?>
9. Vòng Lặp foreach trong PHP
Vòng lặp foreach trong PHP được sử dụng khi chúng ta muốn chạy lặp lại một đoạn code một số lần cho trước.
10. Cú Pháp
Cú pháp vòng lặp foreach trong PHP lặp qua các phần tử trong một mảng. Vòng lặp này cần sử dụng tới một mảng và có cú pháp như sau:
foreach($array as $value) {
// code trong vòng lặp
}
Hoặc:
foreach($array as $value) {
// code trong vòng lặp
}
Ví dụ:
$car_brands = array("Toyota", "Honda", "Suzuki");
foreach ($car_brands as $value) {
echo "{$value}
";
}
?>
Đoạn code trên sử dụng vòng lặp foreach để lặp qua các phần tử trong mảng $car_brands và in ra giá trị của từng phần tử.
Trường hợp chúng ta cần sử dụng tới khoá và giá trị của phần tử trong mảng:
$car_brands = array("Toyota", "Honda", "Suzuki");
foreach ($car_brands as $key => $value) {
echo "Hãng xe đứng thứ {$key + 1} là {$value}";
}
?>
Đoạn code trên sử dụng vòng lặp foreach để lặp qua các phần tử trong mảng $car_brands sử dụng đồng thời cả khoá và giá trị của từng phần tử.
Lưu ý: Đoạn code trong vòng lặp foreach trên sử dụng cặp dấu ngoặc () quanh biểu thức $key + 1, điều này sẽ khiến PHP ưu tiên thực hiện phép toán cộng $key +1 trước sau đó mới thực hiện nối chuỗi thay vì nối chuối hai chuỗi đầu tiên rồi thực hiện phép cộng với 1.
Bài học PHP cơ bản khác bạn nên đọc: