Hướng dẫn php loop in range - vòng lặp php trong phạm vi

(Php 4, Php 5, Php 7, Php 8)

for vòng lặp là các vòng lặp phức tạp nhất trong PHP. Họ cư xử như các đối tác C. Cú pháp của vòng lặp for là:

for (expr1; expr2; expr3)
    statement

Biểu thức đầu tiên (expr1) được đánh giá (thực hiện) một khi vô điều kiện ở đầu vòng lặp.

Khi bắt đầu mỗi lần lặp, expr2 được đánh giá. Nếu nó đánh giá thành true, vòng lặp tiếp tục và (các) câu lệnh lồng nhau được thực thi. Nếu nó đánh giá thành false, việc thực hiện vòng lặp kết thúc.true, the loop continues and the nested statement(s) are executed. If it evaluates to false, the execution of the loop ends.

Vào cuối mỗi lần lặp, expr3 được đánh giá (thực hiện).

Mỗi biểu thức có thể trống hoặc chứa nhiều biểu thức được phân tách bằng dấu phẩy. Trong expr2, tất cả các biểu thức được phân tách bằng dấu phẩy được đánh giá nhưng kết quả được lấy từ phần cuối cùng. expr2 trống có nghĩa là vòng lặp nên được chạy vô thời hạn (PHP ngầm coi nó là true, như C). Điều này có thể không vô dụng như bạn nghĩ, vì thường thì bạn muốn kết thúc vòng lặp bằng cách sử dụng câu lệnh break có điều kiện thay vì sử dụng biểu thức sự thật for.true, like C). This may not be as useless as you might think, since often you'd want to end the loop using a conditional break statement instead of using the for truth expression.

Xem xét các ví dụ sau. Tất cả chúng hiển thị các số từ 1 đến 10:

<?php
/* example 1 */for ($i 1$i <= 10$i++) {
    echo 
$i;
}
/* example 2 */for ($i 1; ; $i++) {
    if (
$i 10) {
        break;
    }
    echo 
$i;
}
/* example 3 */$i 1;
for (; ; ) {
    if (
$i 10) {
        break;
    }
    echo 
$i;
    
$i++;
}
/* example 4 */for ($i 1$j 0$i <= 10$j += $i, print $i$i++);
?>

Tất nhiên, ví dụ đầu tiên dường như là cái đẹp nhất (hoặc có lẽ là thứ tư), nhưng bạn có thể thấy rằng việc có thể sử dụng các biểu thức trống trong các vòng lặp for có ích trong nhiều trường hợp.

PHP cũng hỗ trợ "cú pháp đại tràng" thay thế cho các vòng for.

for (expr1; expr2; expr3):
    statement
    ...
endfor;

Đó là một điều phổ biến đối với nhiều người dùng để lặp lại thông qua các mảng như trong ví dụ dưới đây.

for (expr1; expr2; expr3):
    statement
    ...
endfor;
2

for (expr1; expr2; expr3):
    statement
    ...
endfor;
3

for (expr1; expr2; expr3):
    statement
    ...
endfor;
4

Mã trên có thể chậm, vì kích thước mảng được tìm nạp trên mỗi lần lặp. Vì kích thước không bao giờ thay đổi, vòng lặp dễ dàng được tối ưu hóa bằng cách sử dụng biến trung gian để lưu trữ kích thước thay vì số lần gọi liên tục ():count():

for (expr1; expr2; expr3):
    statement
    ...
endfor;
5

for (expr1; expr2; expr3):
    statement
    ...
endfor;
3

for (expr1; expr2; expr3):
    statement
    ...
endfor;
7

Matthiaz ¶

10 năm trước

for (expr1; expr2; expr3):
    statement
    ...
endfor;
8

for (expr1; expr2; expr3):
    statement
    ...
endfor;
9

for0

for1

for2

Nzamani tại Cyberworldz Dot de ¶

21 năm trước

for3

for4

for5

for6

for2

Andrew ¶

8 năm trước

for8

for9

for2

Warbo ¶

8 năm trước

for1

for2

for3

for4

Warbo ¶

Ju Dot Nk tại email dot cz ¶

for5

for6

for7

for8

for9

for2

4 năm trước

DX tại e-mogensen dot dk ¶

true1

true2

true3

true4

true5

true6

true7

true8

true9

false0

for2

5 năm trước

Ẩn danh ¶

false2

2 năm trước

Justinb tại Harvest Dot org ¶

false3

false4

for2

17 năm trước

8 năm trước

false6

false7

false8

false9

Warbo ¶

Ju Dot Nk tại email dot cz ¶

true0

false7

true2

true3

4 năm trước

8 năm trước

true4

true5

true6

for2

Warbo ¶

Ju Dot Nk tại email dot cz ¶

true8

true9

for2

4 năm trước

DX tại e-mogensen dot dk ¶

break1

Warbo ¶

Ju Dot Nk tại email dot cz ¶

for5

break3

for6

for7

for8

for9

for2

5 năm trước

8 năm trước

break9

for0

for1

for2

Warbo ¶

Ju Dot Nk tại email dot cz ¶

for3

for4

for5

for6

for7

for2

4 năm trước

DX tại e-mogensen dot dk ¶

for9

<?php
/* example 1 */for ($i 1$i <= 10$i++) {
    echo 
$i;
}
/* example 2 */for ($i 1; ; $i++) {
    if (
$i 10) {
        break;
    }
    echo 
$i;
}
/* example 3 */$i 1;
for (; ; ) {
    if (
$i 10) {
        break;
    }
    echo 
$i;
    
$i++;
}
/* example 4 */for ($i 1$j 0$i <= 10$j += $i, print $i$i++);
?>
0

for2

5 năm trước

DX tại e-mogensen dot dk ¶

<?php
/* example 1 */for ($i 1$i <= 10$i++) {
    echo 
$i;
}
/* example 2 */for ($i 1; ; $i++) {
    if (
$i 10) {
        break;
    }
    echo 
$i;
}
/* example 3 */$i 1;
for (; ; ) {
    if (
$i 10) {
        break;
    }
    echo 
$i;
    
$i++;
}
/* example 4 */for ($i 1$j 0$i <= 10$j += $i, print $i$i++);
?>
2

<?php
/* example 1 */for ($i 1$i <= 10$i++) {
    echo 
$i;
}
/* example 2 */for ($i 1; ; $i++) {
    if (
$i 10) {
        break;
    }
    echo 
$i;
}
/* example 3 */$i 1;
for (; ; ) {
    if (
$i 10) {
        break;
    }
    echo 
$i;
    
$i++;
}
/* example 4 */for ($i 1$j 0$i <= 10$j += $i, print $i$i++);
?>
3

<?php
/* example 1 */for ($i 1$i <= 10$i++) {
    echo 
$i;
}
/* example 2 */for ($i 1; ; $i++) {
    if (
$i 10) {
        break;
    }
    echo 
$i;
}
/* example 3 */$i 1;
for (; ; ) {
    if (
$i 10) {
        break;
    }
    echo 
$i;
    
$i++;
}
/* example 4 */for ($i 1$j 0$i <= 10$j += $i, print $i$i++);
?>
4

for2

5 năm trước

DX tại e-mogensen dot dk ¶

<?php
/* example 1 */for ($i 1$i <= 10$i++) {
    echo 
$i;
}
/* example 2 */for ($i 1; ; $i++) {
    if (
$i 10) {
        break;
    }
    echo 
$i;
}
/* example 3 */$i 1;
for (; ; ) {
    if (
$i 10) {
        break;
    }
    echo 
$i;
    
$i++;
}
/* example 4 */for ($i 1$j 0$i <= 10$j += $i, print $i$i++);
?>
6

<?php
/* example 1 */for ($i 1$i <= 10$i++) {
    echo 
$i;
}
/* example 2 */for ($i 1; ; $i++) {
    if (
$i 10) {
        break;
    }
    echo 
$i;
}
/* example 3 */$i 1;
for (; ; ) {
    if (
$i 10) {
        break;
    }
    echo 
$i;
    
$i++;
}
/* example 4 */for ($i 1$j 0$i <= 10$j += $i, print $i$i++);
?>
4

for2