Hướng dẫn for trong php

Vòng lặp trong PHP nói chung là một đoạn code được thực thi nhiều lần (có thể là 0 lần) nhằm thực hiện một tác vụ giống nhau. Trong vòng lặp, chúng ta cần quan tâm các vấn đề:

- Điều kiện để vòng lặp thực thi, khi điều kiện không thỏa, vòng lặp sẽ dừng và khối code phía sau vòng lặp sẽ được thực thi.

- Đoạn code bên trong vòng lặp.

Ví dụ: Chúng ta cần in ra danh sách sản phẩm gồm tên sản phẩm, giá, hình sản phẩm. Các sản phẩm đều hiển thị giống nhau với 3 thành phần như vậy, nghĩa là tác vụ in thông tin một sản phẩm ra màn hình là giống nhau, chúng ta có thể sử dụng vòng lặp để làm điều này.

Vòng lặp FOR trong PHP

Cấu trúc vòng lặp for trong PHP sẽ như sau:

for (F1; F2; F3){
    R1
}

Trong đó:

- F1: là khối code được thực thi một lần duy nhất khi bắt đầu vào vòng lặp, sau đó sẽ chuyển đến thực thi khối F2.

- F2: là khối code điều kiện của vòng lặp. Nếu khối code F2 trả về điều kiện đúng thì chương trình sẽ thực thi tiếp khối code R1. Nếu F2 trả về điều kiện sai thì chương trình kết thúc vòng lặp và thực thi khối code phía sau for (hay ngoài for) .

- F3: là khối code được thực thi sau khi chương trình thực thi khối code R1.

- R1: là khối code thực thi nếu F2 trả về điều kiện đúng.

Quy trình thực thi vòng lặp for trong PHP:
- Bước 1: Thực thi F1

- Bước 2: Thực thi F2

- Bước 3: Nếu F2 đúng thì thực thi R1 và chuyển sang bước 4, F2 sai thì dừng vòng lặp.

- Bước 4. Thực thi F3

- Bước 5. Quay lại bước 2

Vòng lặp WHILE trong PHP

Cấu trúc vòng lặp While trong PHP

while ( W1 ){
    R1
}

Trong đó: 

- W1: Khối code được chạy khi mới vào vòng lặp while, và chạy lại sau mỗi lần thực thi xong R1, nếu khối code W1 trả về điều kiện đúng thì tiếp tục thực hiện R1, nếu W1 trả về điều kiện sai thì kết thúc vòng lặp.

- R1: Khối code được thực hiện khi W1 trả về điều kiện đúng

Quy trình thực hiện vòng lặp while trong PHP
Bước 1: Thực thi W1, nếu W1 trả về điều kiện đúng thì chuyển sang bước 2, nếu W1 sai thì dừng vòng lặp while.

Bước 2: Thực thi R1.

Bước 3: Lặp lại bước 1.

Vòng lặp FOREACH trong PHP

Cấu trúc vòng lặp foreach trong PHP

foreach ($array as $key => $value) {
    R1
}

Trong đó: 

- $array: biến chứa mảng gồm nhiều phần tử. Các phần tử này sẽ lần lượt được lặp qua để chạy khối code R1.

- $key: thể hiện chỉ số mỗi khi lặp qua một phần tử trong mảng $array.

- $value: giá trị mỗi khi lặp qua một phần tử trong mảng $array.

- R1: Khối code được chạy khi lần lượt lặp qua các phần tử của mảng $array. Mảng $array có N phần tử thì khối code R1 cũng sẽ được thực thi N lần.

Ngắt vòng lặp trong PHP

Chúng ta có thể bắt buộc vòng lặp phải dừng bằng cách sử dụng từ khóa break như ví dụ sau đây:

for ($i = 0; $i <= 5; $i ++){
    echo $i;
    echo "
"; if ($i == 3){ break; } } // Kết quả sẽ in ra màn hình các số 0, 1, 2, 3

Bắt buộc chuyển qua vòng lặp tiếp theo trong PHP

Chúng ta có thể ngắt một vòng lặp và chuyển tới vòng lặp tiếp theo bằng cách sử dụng từ khóa continue (không thoát hẳn vòng lặp như break) như ví dụ sau:

for ($i = 0; $i <= 10; $i ++){
    if ($i % 2 == 1){
        continue;
    }
    echo $i;
    echo "
"; } // Kết quả sẽ in ra màn hình các số chẵn từ 0 đến 10

Các lưu ý khi sử dụng vòng lặp

- Các biến khai báo trong vòng lặp thì vẫn còn hiệu lực khi đã kết thúc vòng lặp, hãy cùng xem ví vụ sau:

Vòng lặp là một thành phần quan trọng không chỉ trong PHP mà trong nhiều ngôn ngữ lập trình khác. Kiến thức cơ bản về vòng lặp thì không khó tuy nhiên việc sử dụng, phân biệt các vòng lặp trong PHP có lẽ nhiều bạn lập trình viên mới vào cũng chưa hiểu rõ hết được.

Cụ thể: Vòng lặp trong PHP được sử dụng để thực hiện một đoạn mã với số lần xác định

Vòng lặp For trong PHP

Vòng lặp For thuận ( vòng lặp xuôi) hay còn gọi là For i

Vòng lặp trên đây được hiểu là: Lặp giá trị từ 0 đến nhỏ hơn 10, với bước nhảy mỗi lần là 1.

$i++ ở đây tương đương với $i+1, sau mỗi vòng lặp giá trị biến đếm $i sẽ tăng lên 1

Kết quả sẽ là

0
1
2
3
4
5
6
7
8
9

Nếu bạn muốn bước nhảy là 2 cho vòng lặp for trong php thì có thể viết $i+=2;

Kết quả:

0
2
4
6
8

Có câu hỏi nhỏ, theo các bạn tại sao biến đếm thường được đặt là $i ????

Vòng lặp For nghịch ( Vòng lặp for ngược hay vòng lặp for trừ)

=0; $i--){
    echo $i.PHP_EOL;
}

Vòng For này hoàn toàn ngược lại so với vòng for bên trên. Thay vì cộng dần biến đếm $i thì vòng for sẽ chạy từ giá trị 5 cho đến khi không thỏa mãn điều kiện $i>=0 ( nghĩa là cho đến lúc $i<0 hay $i = -1), mỗi bước nhảy là 1.

5
4
3
2
1
0

Vòng lặp For vô hạn

Thông thường để lặp vô hạn thường dùng while, do whilte tuy nhiên cúng ta có thể sử dụng For để làm điều này

5){
        break;
    }
    $i++;
    echo $i.PHP_EOL;
}

Kêt quả

1
2
3
4
5
6

Với For(;;) nghĩa là không có điều kiện bắt đầu và kết thúc, nghĩa là vòng for luôn đúng, điều này đồng nghĩa là vòng for chạy vô hạn

Vòng lặp Foreach trong PHP

Foreach còn thường gọi là For Each, vòng lặp này sẽ duyệt từng phần tử trong 1 mảng danh sách có trước

Kết quả

1
2
3
4
5

Vòng lặp Foreach với mảng key value trong PHP

"Táo","banana"=>"Chuối","orange"=>"Cam"];
foreach($arr as $key=> $item){
    echo $key."-".$item.PHP_EOL;
}

Kết quả:

apple-Táo
banana-Chuối
orange-Cam

Tham khảo thêm kiến thức nâng cao vòng lặp foreach trong PHP

Cách viết khác cho vòng lặp For, Foreach

Ngoài các cách viết trên đây trong PHP cũng có 1 cách viết khác cho vòng lặp for và foreach, cách viết này hạn chế việc mở ngoặc và đóng ngoặc quá nhiều trong đoạn code

Vòng lặp while

Điều kiện lặp phải trả về/ hoặc là giá trị true/false (kiểu boolean).

Câu lệnh sẽ dừng lại khi mà điều kiện lặp không được thỏa mãn. Điều kiện lặp được kiểm tra trước mỗi khi vòng lặp được chạy.

Ví dụ

Kết quả:

1
2
3
4
5

Vòng lặp do while

Vòng lặp do while trong PHP tương tự như vòng lặp while, chỉ khác 1 điều cơ bản nhất

  • Vòng lặp do while luôn chạy 1 lần đầu tiên dù điều kiện lặp đúng hay sai
  • Vòng lặp while chỉ chạy khi điều kiện lặp là đúng
  • Sử dụng vòng lặp dowhile có thể làm giảm thiểu sự trùng lặp code trong trường hợp đoạn mã đó bắt buộc phải chạy tối thiểu 1 lần

Xem thêm về vòng lặp do while 

Kết quả:

0
2
4
6
8
0

ví dụ như đoạn mã trên đây có thể hiểu tương đương với vòng lặp while dưới đây

Kết quả:

0
2
4
6
8
1

Tổng kết

Trong PHP có các loại vòng lặp: For, Foreach, While, Do while. Các vòng lặp này về bản chất gần giống nhau khi thực hiện lặp đi lặp lại câu lệnh 1 số lượng lần nhất định. Tuy nhiên khi hiểu rõ các vòng lặp các bạn có thể áp dụng linh hoạt vòng lặp vào trong trường hợp cụ thể để có thể đạt hiệu quả tốt nhất cho công việc của mình.