Hướng dẫn dùng foreach break trong PHP
Bài trước chúng ta đã tìm hiểu vòng lặp cuối cùng đó là vòng lặp foreach trong php, vậy thì trong bài này chúng ta sẽ tìm hiểu một số câu lệnh dừng chương trình vòng lặp và lệnh nhảy tới một vị trí nào đó trong file PHP. Show Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức. Nội dung chúng ta gồm ó các phần như sau:
1. Câu lệnh breakLệnh Ví dụ: Bài viết này được đăng tại [free tuts .net] for ($i = 1; $i <= 100; $i++) { echo $i . ' '; if ($i == 20) { break; } } Trong ví dụ này thì vòng lặp được lặp từ 1 cho tới 100, nhưng nó không chạy hết 100 lần bởi vì khi nó chạy tới lần thứ 20 (tức là biến $i = 20) thì câu lệnh kiểm tra if đúng nên lệnh break bên trong câu if được thực hiện và sẽ dừng vòng lặp. Không chỉ ở vòng lặp for mà các vòng lặp như while và do while, vòng lặp foreach ta đều có thể dùng lệnh break để kết thúc. 2. Câu lệnh continueDịch ra tiếng anh cũng đủ hiểu phần nào câu lệnh này, lệnh Ví dụ: for ($i = 1; $i <= 10; $i++) { if ($i == 5) { continue; } echo $i . ' '; } Bài này vòng lặp for lặp từ 1 tới 10 và in ra các số đó. nhưng lạ thay là kết quả thiếu mất số 5 tại vì khi $i = 5 (vòng lặp thứ 5) thì câu lệnh continue đã nhảy chương trình qua vòng lặp mới nên lệnh Tương tự ta có thể sử dụng lệnh này cho tất cả các vòng lặp for, while, do while và foreach. 3. Câu lệnh gotoLệnh goto dùng để nhảy đến một dòng code nào đó. Ví dụ: $a = 12; $b = 13; $c = $a + $b; echo $a; goto label_end; echo $b; label_end; Trong ví dụ này nếu bình thường thì nó sẽ xuất ra màn hình cả $a và $b nhưng bài này nó chỉ xuất ra màn hình mỗi $a vì dòng Người ta khuyên rằng không nên sử dụng lệnh goto bởi vì nó khó nhìn, lộn xộn khó bảo trì nâng cấp. 4. Lênh die và exitVới 2 lệnh break và continue chỉ ảnh hương trong vòng lặp thì lệnh die và exit lại ảnh hưởng tới cả chương trình, nếu bạn dùng 2 lệnh này thì chương trình sẽ dừng ngay lập tức và những đoạn code bên dưới die và exit sẽ không được thực hiện. Ví dụ: echo '123'; die(); // hoặc exit(); echo '456'; Trong ví dụ này kết quả xuất ra màn hình là 123, vởi vì dòng code 5. Lời kếtThực tế thì ta hay sử dụng lệnh break, continue, die và exit thôi chứ lệnh goto rất ít khi dùng vì nó làm cho chương trình trở lên rối, khó nâng cấp và bảo trì. Bài tiếp theo ta sẽ tìm hiểu hàm trong php. Bài trước chúng ta đã tìm hiểu vòng lặp cuối cùng đó là vòng lặp foreach trong php, vậy thì trong bài này chúng ta sẽ tìm hiểu một số câu lệnh dừng chương trình vòng lặp và lệnh nhảy tới một vị trí nào đó trong file PHP. Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức. Nội dung chúng ta gồm ó các phần như sau:
1. Câu lệnh breakLệnh Ví dụ: Bài viết này được đăng tại [free tuts .net] for ($i = 1; $i <= 100; $i++) { echo $i . ' '; if ($i == 20) { break; } } Trong ví dụ này thì vòng lặp được lặp từ 1 cho tới 100, nhưng nó không chạy hết 100 lần bởi vì khi nó chạy tới lần thứ 20 (tức là biến $i = 20) thì câu lệnh kiểm tra if đúng nên lệnh break bên trong câu if được thực hiện và sẽ dừng vòng lặp. Không chỉ ở vòng lặp for mà các vòng lặp như while và do while, vòng lặp foreach ta đều có thể dùng lệnh break để kết thúc. 2. Câu lệnh continueDịch ra tiếng anh cũng đủ hiểu phần nào câu lệnh này, lệnh Ví dụ: for ($i = 1; $i <= 10; $i++) { if ($i == 5) { continue; } echo $i . ' '; } Bài này vòng lặp for lặp từ 1 tới 10 và in ra các số đó. nhưng lạ thay là kết quả
thiếu mất số 5 tại vì khi $i = 5 (vòng lặp thứ 5) thì câu lệnh continue đã nhảy chương trình qua vòng lặp mới nên lệnh Tương tự ta có thể sử dụng lệnh này cho tất cả các vòng lặp for, while, do while và foreach. 3. Câu lệnh gotoLệnh goto dùng để nhảy đến một dòng code nào đó. Ví dụ: $a = 12; $b = 13; $c = $a + $b; echo $a; goto label_end; echo $b; label_end; Trong ví dụ này nếu bình thường thì nó sẽ xuất ra màn hình cả $a và $b nhưng bài này nó chỉ xuất ra màn
hình mỗi $a vì dòng Người ta khuyên rằng không nên sử dụng lệnh goto bởi vì nó khó nhìn, lộn xộn khó bảo trì nâng cấp. 4. Lênh die và exitVới 2 lệnh break và continue chỉ ảnh hương trong vòng lặp thì lệnh die và exit lại ảnh hưởng tới cả chương trình, nếu bạn dùng 2 lệnh này thì chương trình sẽ dừng ngay lập tức và những đoạn code bên dưới die và exit sẽ không được thực hiện. Ví dụ: echo '123'; die(); // hoặc exit(); echo '456'; Trong ví dụ này kết quả xuất ra màn hình là 123, vởi vì dòng code 5. Lời kếtThực tế thì ta hay sử dụng lệnh break, continue, die và exit thôi chứ lệnh goto rất ít khi dùng vì nó làm cho chương trình trở lên rối, khó nâng cấp và bảo trì. Bài tiếp theo ta sẽ tìm hiểu hàm trong php. Ở các bài trước chúng ta đã được học ba vòng lặp (vòng lặp for, vòng lặp while và do while), vậythì hôm nay chúng ta sẽ được biết thêm một vòng lặp mới nữa đó là vòng lặp foreach. Vòng lặp foreach trong php dùng để lặp các phần tử trong mảng, chính vì thế nó được sử dụng rất nhiều khi chúng ta làm dự án với PHP, hầu như ai cũng thích bởi vì sử dụng đơn giản. Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức. 1. Cú pháp vòng lặp foreach trong PHPCú pháp vòng lặp foreach trong php: foreach ($array as $key => $value){ // Các dòng lệnh } Bài viết này được đăng tại [free tuts .net] Hoặc: foreach ($array as $value){ // Các dòng lệnh } Trong đó Ví dụ 1: // Danh sách các năm $nam = array( 1990, 1991, 1992, 1993, 1994, 1995 ); //Dùng foreach xuất ra các năm trong $nam foreach ($nam as $key => $value){ echo $value; } Vòng lặp foreach tự động lặp qua các phần tử trong mảng, nó lặp cho khi nào tới phần tử cuối cùng thì thôi. Như ở ví dụ trên thì 0 => 1990 1 => 1991 2 => 1992 3 => 1993 4 => 1994 5 => 1995 Nếu để ý kỹ thì các bạn sẽ thấy trong vòng lặp tôi chỉ truyền // Danh sách các năm $nam = array( 1990, 1991, 1992, 1993, 1994, 1995 ); //Dùng foreach xuất ra các năm trong $nam foreach ($nam as $chimuc => $giatri){ echo $chimuc . ' => ' . $giatri; } Với bài toán trên ta có thể dùng cú pháp thứ 2 của vòng lặp foreach trong php để giải nó: // Danh sách các năm $nam = array( 1990, 1991, 1992, 1993, 1994, 1995 ); //Dùng foreach xuất ra các năm trong $nam foreach ($nam as $value){ echo $value; } Trong ví dụ này ta không lấy được 1990 1991 1992 1993 1994 1995 Ví dụ 2: Trong ví dụ này danh sách sinh viên truyền vào là một mảng kết hợp theo quy tắc mssv => tensv, trong vòng lặp sẽ xuất ra mã số sinh viên và tên sinh viên tương ứng. Với cách giải sau thì chỉ lấy được tên chứ không lấy được mã số sinh viên: // Danh sách mã số sinh viên và sinh viên tương ứng $sinhvien = array( 'SV001' => 'Nguyễn Văn A', 'SV002' => 'Nguyễn Văn B', 'SV003' => 'Nguyễn Văn C', 'SV004' => 'Nguyễn Văn D', 'SV005' => 'Nguyễn Văn E' ); // Xuất ra danh sách sinh viên foreach ($sinhvien as $tensv){ echo $tensv . ' Đấy chính là sự khác biệt giữa hai cách lặp. Để hiểu rõ hơn về vòng lặp foreach trong PHP thì mời các bạn đọc bài viết "bản chất vòng lặp foreach trong php", đây là một bài thảo luận về tốc độ cũng như quy trình hoạt động của vòng lặp foreach. 2. Lời kếtKết thúc bài này tôi hy vọng các bạn nắm được cách sử dụng vòng lặp foreach trong php để xử lý mảng. Xin lưu ý với các bạn rằng vòng lặp foreach có thể lặp lồng nhau để xử lý mảng nhiều chiều, mình sẽ không cho ví dụ vì bài quá dài đọc dễ nhàm chán và cũng một phần vì trong quá trình học chúng ta sẽ đụng tới vấn đề này nên coi như tôi duyệt nó ở phần sau. Trong bài tới chúng ta học các lệnh break, continiue, go to, die, exit, đó là những lệnh kết thúc vòng lặp hoặc thoát chương trình. |