Một chương trình theo mặc định thực hiện các câu lệnh theo thứ tự tuần tự. Nếu luồng chương trình được hướng đến bất kỳ câu lệnh nào trước đó trong chương trình, điều đó tạo thành một vòng lặp. Câu lệnh for trong PHP là một công cụ thuận tiện để tạo thành một vòng lặp trong một kịch bản PHP. Trong chương này, chúng ta sẽ thảo luận về câu lệnh for trong PHP.
Sơ đồ luồng sau đây giải thích cách mà một vòng lặp for hoạt động −
Câu lệnh for được sử dụng khi bạn biết số lần bạn muốn thực hiện một câu lệnh hoặc một khối câu lệnh.
Cú pháp của câu lệnh for trong PHP tương tự như câu lệnh for trong ngôn ngữ C.
for (expr1; expr2; expr3){ code to be executed; }
Từ khóa for được theo sau bởi một dấu ngoặc đơn chứa ba biểu thức được phân tách bằng dấu chấm phẩy. Mỗi biểu thức có thể trống hoặc có thể chứa nhiều biểu thức được phân tách bằng dấu phẩy. Dấu ngoặc đơn được theo sau bởi một hoặc nhiều câu lệnh được đặt trong dấu ngoặc nhọn. Nó tạo thành phần thân của vòng lặp.
Biểu thức đầu tiên trong dấu ngoặc đơn chỉ được thực thi vào đầu vòng lặp. Nó thường hoạt động như initializer được sử dụng để thiết lập giá trị khởi đầu cho bộ đếm số lần lặp.
Vào đầu mỗi lần lặp, expr2 được đánh giá. Nếu nó đánh giá là đúng, vòng lặp tiếp tục và các câu lệnh trong khối thân vòng lặp được thực thi. Nếu nó đánh giá là sai, việc thực thi vòng lặp kết thúc. Nói chung, expr2 xác định giá trị cuối cùng của bộ đếm.
Câu lệnh expr3 được thực thi ở cuối mỗi vòng lặp. Trong hầu hết các trường hợp, biểu thức này làm tăng biến đếm.
Ví dụ tổng quát nhất về một vòng lặp for là như sau −
<?php for ($i=1; $i<=10; $i++){ echo "Iteration No: $i \n"; } ?>
Dưới đây là output của nó −
Iteration No: 1 Iteration No: 2 Iteration No: 3 Iteration No: 4 Iteration No: 5 Iteration No: 6 Iteration No: 7 Iteration No: 8 Iteration No: 9 Iteration No: 10
Lưu ý rằng tất cả ba biểu thức trong dấu ngoặc đều là tùy chọn. Một câu lệnh for chỉ với hai dấu chấm phẩy sẽ tạo thành một vòng lặp vô hạn.
for (; ;) { Loop body }
Để dừng vòng lặp vô hạn, bạn cần sử dụng một câu lệnh break bên trong thân vòng lặp.
Bạn cũng có thể tạo một vòng lặp giảm for . Để có một vòng lặp for từ 10 đến 1, hãy khởi tạo biến vòng lặp với 10, biểu thức ở giữa được đánh giá vào đầu mỗi lần lặp kiểm tra xem nó có lớn hơn 1 hay không. Biểu thức cuối cùng được thực hiện vào cuối mỗi lần lặp nên giảm nó đi 1.
<?php for ($i=10; $i>=1; $i--){ echo "Iteration No: $i \n"; } ?>
Nó sẽ tạo ra output −
Iteration No: 10 Iteration No: 9 Iteration No: 8 Iteration No: 7 Iteration No: 6 Iteration No: 5 Iteration No: 4 Iteration No: 3 Iteration No: 2 Iteration No: 1
Bạn cũng có thể sử dụng ký hiệu ":" (dấu hai chấm) để bắt đầu khối lặp và đặt câu lệnh endfor ở cuối khối.
<?php for ($i=1; $i<=10; $i++): echo "Iteration No: $i \n"; endfor; ?>
Mỗi phần tử trong mảng được xác định bởi một chỉ số tăng dần bắt đầu từ "0". Nếu một mảng có 5 phần tử, giới hạn dưới của nó là 0 và giới hạn trên của nó là 4 (kích thước của mảng - 1).
Để lấy số lượng phần tử trong một mảng, có một hàm count(). Do đó, chúng ta có thể lặp qua một mảng chỉ mục bằng cách sử dụng câu lệnh for sau đây −
<?php $numbers = array(10, 20, 30, 40, 50); for ($i=0; $i<count($numbers); $i++){ echo "numbers[$i] = $numbers[$i] \n"; } ?>
Nó sẽ tạo ra output −
numbers[0] = 10 numbers[1] = 20 numbers[2] = 30 numbers[3] = 40 numbers[4] = 50
Một mảng liên kết trong PHP là một tập hợp các cặp khóa-giá trị. Một ký hiệu mũi tên (=>) được sử dụng để thể hiện mối liên hệ giữa khóa và giá trị của nó. Chúng ta sử dụng hàm array_keys() để lấy mảng các khóa.
Đoạn mã sau for sẽ in ra thủ đô của mỗi tiểu bang từ một mảng liên kết $capitals được định nghĩa trong mã.
<?php $capitals = array( "Maharashtra"=>"Mumbai", "Telangana"=>"Hyderabad", "UP"=>"Lucknow", "Tamilnadu"=>"Chennai" ); $keys=array_keys($capitals); for ($i=0; $i<count($keys); $i++){ $cap = $keys[$i]; echo "Capital of $cap is $capitals[$cap] \n"; } ?>
Dưới đây là output của nó −
Capital of Maharashtra is Mumbai Capital of Telangana is Hyderabad Capital of UP is Lucknow Capital of Tamilnadu is Chennai
Nếu một vòng lặp for khác được sử dụng bên trong thân của một vòng lặp hiện có, thì hai vòng lặp được cho là đã được lồng vào nhau.
Đối với mỗi giá trị của biến đếm trong vòng lặp ngoài, tất cả các lần lặp của vòng lặp trong đều được hoàn thành.
<?php for ($i=1; $i<=3; $i++){ for ($j=1; $j<=3; $j++){ echo "i= $i j= $j \n"; } } ?>
Nó sẽ tạo ra output −
i= 1 j= 1 i= 1 j= 2 i= 1 j= 3 i= 2 j= 1 i= 2 j= 2 i= 2 j= 3 i= 3 j= 1 i= 3 j= 2 i= 3 j= 3
Lưu ý rằng chuỗi là một dạng của mảng. Hàm strlen() trả về số ký tự trong một chuỗi.
Đoạn mã PHP sau sử dụng hai vòng lặp lồng nhau để in ra số lượng ký tự tăng dần từ một chuỗi ở mỗi dòng.
<?php $str = "TutorialsPoint"; for ($i=0; $i<strlen($str); $i++){ for ($j=0; $j<=$i; $j++){ echo "$str[$j]"; } echo "\n"; } ?>
Nó sẽ tạo ra output −
T Tu Tut Tuto Tutor Tutori Tutoria Tutorial Tutorials TutorialsP TutorialsPo TutorialsPoi TutorialsPoin TutorialsPoint