Ngôn ngữ lập trình PHP có sử dụng một số loại cấu trúc vòng lặp: for, while, do…while, foreach. Mỗi loại cấu trúc lặp có một ưu điểm riêng, tùy theo từng bài toán mà bạn có thể áp dụng loại vòng lặp nào.
Cấu trúc for
Đây là loại vòng lặp khi biết trước số lượng bước lặp và có nhu cầu sử dụng tới chỉ số thứ tự của bước lặp.
Cú pháp:
for(khởi_tạo_biến_chạy; điều_kiện_dừng_vòng_lặp; cách_tăng_giảm_biến_chạy){
// các lệnh muốn lặp lại viết ở đây
}
Cấu trúc while
Đây là loại cấu trúc lặp dành cho trường hợp không cần quan tâm tới số lần lặp. Cấu trúc này sẽ kiểm tra điều kiện dừng trước khi thực hiện công việc.
while (biểu_thức_điều_kiện){
// khối lệnh thực hiện khi điều kiện còn đúng
// trong khối lệnh này bạn cần thay đổi giá trị nào đó để giá trị biểu thức điều kiện có sự thay đổi khi đạt giới hạn lặp
// nếu không sẽ dẫn tới vòng lặp vĩnh viễn.
}
Cấu trúc do…while
Cũng giống cấu trúc while ở trên, cấu trúc này không cần quan tâm tới số lượng bước lặp. Nhưng ở cấu trúc này sẽ thực hiện công việc trước khi kiểm tra điều kiện. Như vậy nếu điều kiện sai ngay từ đầu thì cấu trúc này vẫn thực hiện khối lệnh 1 lần.
do {
// khối lệnh thực hiện lặp lại
}while(biểu_thức_điều_kiện);
Cấu trúc foreach
Cấu trúc này thường dùng áp dụng duyệt mảng và không cần đếm số lượng phần tử trong mảng hoặc với mảng có chỉ số kết hợp (không phải số nguyên thông thường)
foreach(biến_mảng as key => value){
// các lệnh thực hiện với key và value của từng phần tử trong mảng
}
Dưới đây là code mẫu thử nghiệm, bạn tạo 1 file php và thử nghiệm code dưới đây với các trường hợp:
– Chạy lần 1: Gán tất cả $i = 0 và xem kết quả.
– Chạy lần 2: Gán tất cả $i = 10 và xem kết quả.
<meta charset='utf-8' />
<?php
// In ra dãy số từ 1 -> 5;
echo '<h2>Lệnh while: </h2>';
$i = 10;
while($i <=5){
echo $i .'----';
$i ++;
}
echo '<h2>Lệnh do...while: </h2>';
$i = 10;
do{
echo $i .'----';
$i ++;
}while($i <=5);
echo '<h2>Lệnh for(...): </h2>';
for($i = 10; $i<= 5; $i++){
echo $i .'----';
}
echo '<h2>Lệnh foreach: thường áp dụng cho mảng </h2>';
$mang = ['hoTen'=>'Nguyen Van A','tuoi'=>20];
foreach($mang as $k => $v){
echo " $k ==> $v <br>";
}