Trong hướng dẫn này, chúng ta xem xét vòng lặp PHP foreach(). Chúng tôi cũng xem xét cách sử dụng nó trong khi làm việc với một mảng được lập chỉ mục hoặc kết hợp Show
Mục lục - PHP foreach
foreach trong PHP là gì?Phương thức 2 được sử dụng để lặp qua các phần tử trong một mảng được lập chỉ mục hoặc mảng kết hợp. Nó cũng có thể được sử dụng để lặp lại các đối tượng. Điều này cho phép bạn chạy các khối mã cho từng phần tửCú pháp của PHP foreach()Phương thức foreach() có hai cú pháp, một cú pháp cho mỗi loại mảng Cú pháp cho các mảng được lập chỉ mục như được đưa ra trong khối mã sau
Cú pháp cho mảng kết hợp
Ở đây, 3 là tham số bắt buộc. Nó là mảng hoặc biến chứa mảng. 4 là một biến lưu trữ phần tử hiện tại trong mỗi lần lặpMảng được liên kết, sử dụng các khóa và giá trị, và do đó, cú pháp thứ hai là 5 & 6 tương ứngMã & Giải thíchTrong phần này, trước tiên chúng ta xem cách hàm 2 hoạt động trên một mảng được lập chỉ mục, sau đó chúng ta xem xét nó hoạt động trên một mảng kết hợpPHP Foreach() trên các mảng được lập chỉ mục________số 8_______Đầu ra của đoạn mã trên sẽ là
PHP Foreach() trên một mảng Associated
Đầu ra của đoạn mã trên sẽ là
Bây giờ hãy xem trường hợp chúng ta truyền đối số thứ hai Như bạn có thể thấy khóa và giá trị của mảng kết hợp đã được in. Ngoài ra, chúng tôi đã thay thế 8 bằng 9 để dễ đọc hơnBớt tư tưởngPhương thức 2 sẽ trả về lỗi trong trường hợp bạn sử dụng nó trên các biến có kiểu dữ liệu khác. Ngoài ra, phương pháp 2 không sửa đổi các giá trị của con trỏ bên trong Thông tin có thể được chuyển đến các hàm thông qua danh sách đối số, là danh sách các biểu thức được phân tách bằng dấu phẩy. Các đối số được đánh giá từ trái sang phải, trước khi hàm thực sự được gọi (đánh giá háo hức) PHP hỗ trợ truyền đối số theo giá trị (mặc định), và. và cũng được hỗ trợ Ví dụ #1 Truyền mảng cho hàm
Kể từ PHP 8. 0. 0, danh sách các đối số của hàm có thể bao gồm dấu phẩy ở cuối, dấu phẩy này sẽ bị bỏ qua. Điều đó đặc biệt hữu ích trong trường hợp danh sách đối số dài hoặc chứa tên biến dài, thuận tiện cho việc liệt kê đối số theo chiều dọc Ví dụ #2 Danh sách đối số hàm có dấu phẩy ở cuối
Truyền đối số bằng tham chiếuTheo mặc định, các đối số của hàm được truyền theo giá trị (để nếu giá trị của đối số bên trong hàm bị thay đổi, nó sẽ không bị thay đổi bên ngoài hàm). Để cho phép một hàm sửa đổi các đối số của nó, chúng phải được chuyển qua tham chiếu Để có một đối số cho một hàm luôn được truyền theo tham chiếu, hãy thêm dấu và (&) vào trước tên đối số trong định nghĩa hàm Ví dụ #3 Truyền tham số hàm theo tham chiếu
Có lỗi khi chuyển một giá trị làm đối số được cho là được chuyển theo tham chiếu Giá trị đối số mặc địnhMột hàm có thể xác định các giá trị mặc định cho các đối số bằng cách sử dụng cú pháp tương tự như gán một biến. Giá trị mặc định chỉ được sử dụng khi tham số không được chỉ định; Ví dụ #4 Sử dụng tham số mặc định trong hàm
Ví dụ trên sẽ xuất ra Making a cup of cappuccino. Making a cup of . Making a cup of espresso. Giá trị tham số mặc định có thể là giá trị vô hướng, mảng, loại đặc biệt Ví dụ #5 Sử dụng các loại không vô hướng làm giá trị mặc định Fatal error: Uncaught ArgumentCountError: Too few arguments to function makeyogurt(), 1 passed in example.php on line 421 Ví dụ #6 Sử dụng các đối tượng làm giá trị mặc định (kể từ PHP 8. 1. 0) Fatal error: Uncaught ArgumentCountError: Too few arguments to function makeyogurt(), 1 passed in example.php on line 422 Giá trị mặc định phải là một biểu thức hằng, không phải (ví dụ) một biến, thành viên lớp hoặc lệnh gọi hàm Lưu ý rằng bất kỳ đối số tùy chọn nào cũng phải được chỉ định sau bất kỳ đối số bắt buộc nào, nếu không thì không thể bỏ qua chúng trong các cuộc gọi. Xem xét ví dụ sau Ví dụ #7 Sử dụng sai đối số hàm mặc định Fatal error: Uncaught ArgumentCountError: Too few arguments to function makeyogurt(), 1 passed in example.php on line 423 Fatal error: Uncaught ArgumentCountError: Too few arguments to function makeyogurt(), 1 passed in example.php on line 424 Ví dụ trên sẽ xuất ra Fatal error: Uncaught ArgumentCountError: Too few arguments to function makeyogurt(), 1 passed in example.php on line 42 Bây giờ, so sánh ở trên với điều này Ví dụ #8 Cách sử dụng đúng đối số hàm mặc định Fatal error: Uncaught ArgumentCountError: Too few arguments to function makeyogurt(), 1 passed in example.php on line 425 Fatal error: Uncaught ArgumentCountError: Too few arguments to function makeyogurt(), 1 passed in example.php on line 426 Ví dụ trên sẽ xuất ra Making a bowl of raspberry yogurt. Kể từ PHP 8. 0. 0, có thể được sử dụng để bỏ qua nhiều tham số tùy chọn Ví dụ #9 Cách sử dụng đúng đối số hàm mặc định Fatal error: Uncaught ArgumentCountError: Too few arguments to function makeyogurt(), 1 passed in example.php on line 427 Fatal error: Uncaught ArgumentCountError: Too few arguments to function makeyogurt(), 1 passed in example.php on line 428 Ví dụ trên sẽ xuất ra Making a bowl of raspberry natural yogurt. Kể từ PHP 8. 0. 0, khai báo các đối số bắt buộc sau các đối số tùy chọn không được dùng nữa. Điều này thường có thể được giải quyết bằng cách loại bỏ giá trị mặc định, vì nó sẽ không bao giờ được sử dụng. Một ngoại lệ đối với quy tắc này là các đối số có dạng Fatal error: Uncaught ArgumentCountError: Too few arguments to function makeyogurt(), 1 passed in example.php on line 429, trong đó mặc định ____62_______ làm cho loại hoàn toàn vô giá trị. Việc sử dụng này vẫn được cho phép, mặc dù vậy nên sử dụng cách rõ ràng thay thế Ví dụ #10 Khai báo đối số tùy chọn sau đối số bắt buộc Making a bowl of raspberry yogurt.1 Making a bowl of raspberry yogurt.2
Danh sách đối số có độ dài thay đổiPHP có hỗ trợ danh sách đối số có độ dài thay đổi trong các hàm do người dùng xác định bằng cách sử dụng mã thông báo Making a bowl of raspberry yogurt.3
Danh sách đối số có thể bao gồm mã thông báo Making a bowl of raspberry yogurt.3 để biểu thị rằng hàm chấp nhận số lượng đối số thay đổi. Các đối số sẽ được chuyển vào biến đã cho dưới dạng một mảng Ví dụ #11 Sử dụng Making a bowl of raspberry yogurt.3 để truy cập các đối số của biến Making a bowl of raspberry yogurt.7 Making a bowl of raspberry yogurt.8 Ví dụ trên sẽ xuất ra Making a bowl of raspberry yogurt.3 cũng có thể được sử dụng khi gọi các hàm để giải nén một mảng hoặc biến Traversable hoặc ký tự vào danh sách đối số Ví dụ #12 Sử dụng Making a bowl of raspberry yogurt.3 để cung cấp đối số Making a bowl of raspberry natural yogurt.1 Making a bowl of raspberry natural yogurt.2 Making a bowl of raspberry natural yogurt.3 Ví dụ trên sẽ xuất ra Bạn có thể chỉ định các đối số vị trí thông thường trước mã thông báo Making a bowl of raspberry yogurt.3. Trong trường hợp này, chỉ các đối số theo sau không khớp với đối số vị trí mới được thêm vào mảng được tạo bởi Making a bowl of raspberry yogurt.3 Cũng có thể thêm một khai báo kiểu trước mã thông báo Making a bowl of raspberry yogurt.3. Nếu điều này xuất hiện, thì tất cả các đối số do Making a bowl of raspberry yogurt.3 nắm bắt phải khớp với loại tham số đó Ví dụ #13 Loại đối số biến được khai báo Making a bowl of raspberry natural yogurt.8 Making a bowl of raspberry natural yogurt.9 3 days Catchable fatal error: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in - on line 14 and defined in - on line 20 Ví dụ trên sẽ xuất ra 3 days Catchable fatal error: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in - on line 14 and defined in - on line 2 Cuối cùng, các đối số biến cũng có thể được chuyển bằng cách thêm vào trước _____24_______3 một dấu và ( 3 days Catchable fatal error: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in - on line 14 and defined in - on line 22) Các phiên bản cũ hơn của PHPKhông cần cú pháp đặc biệt nào để lưu ý rằng một hàm là biến thiên; Ví dụ đầu tiên ở trên sẽ được triển khai như sau trong các phiên bản PHP cũ Ví dụ #14 Truy cập đối số biến trong các phiên bản PHP cũ 3 days Catchable fatal error: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in - on line 14 and defined in - on line 23 Making a bowl of raspberry yogurt.8 Ví dụ trên sẽ xuất ra Đối số được đặt tênPHP8. 0. 0 đã giới thiệu các đối số được đặt tên dưới dạng phần mở rộng của các tham số vị trí hiện có. Đối số được đặt tên cho phép truyền đối số cho hàm dựa trên tên tham số, thay vì vị trí tham số. Điều này làm cho ý nghĩa của đối số tự ghi lại, làm cho các đối số không phụ thuộc vào thứ tự và cho phép bỏ qua các giá trị mặc định một cách tùy ý Các đối số được đặt tên được truyền bằng cách thêm tiền tố vào giá trị với tên tham số theo sau là dấu hai chấm. Cho phép sử dụng các từ khóa dành riêng làm tên tham số. Tên tham số phải là một mã định danh, không được phép chỉ định động Ví dụ #15 Cú pháp đối số được đặt tên 3 days Catchable fatal error: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in - on line 14 and defined in - on line 25 3 days Catchable fatal error: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in - on line 14 and defined in - on line 26 Ví dụ #16 Đối số vị trí so với đối số được đặt tên 3 days Catchable fatal error: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in - on line 14 and defined in - on line 27 3 days Catchable fatal error: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in - on line 14 and defined in - on line 28 Thứ tự mà các đối số được đặt tên được thông qua không quan trọng Ví dụ #17 Ví dụ tương tự như trên với thứ tự tham số khác 3 days Catchable fatal error: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in - on line 14 and defined in - on line 29 Đối số được đặt tên có thể được kết hợp với đối số vị trí. Trong trường hợp này, các đối số được đặt tên phải xuất hiện sau các đối số vị trí. Cũng có thể chỉ định một số đối số tùy chọn của hàm, bất kể thứ tự của chúng Ví dụ #18 Kết hợp đối số được đặt tên với đối số vị trí
Truyền cùng một tham số nhiều lần dẫn đến ngoại lệ Lỗi Ví dụ #19 Đã xảy ra lỗi khi truyền cùng một tham số nhiều lần
Kể từ PHP 8. 1. 0, có thể sử dụng các đối số được đặt tên sau khi giải nén các đối số. Đối số được đặt tên không được ghi đè lên đối số đã được giải nén Làm cách nào để điền vào mảng kết hợp trong PHP?Bạn đang ghi đè lên các giá trị trong mảng, hãy thử điều này. $clients = $repo->findAll(); . Or you can use array_map function.
Làm cách nào để tìm nạp mảng kết hợp trong PHP?Hàm fetch_assoc() / mysqli_fetch_assoc() tìm nạp một hàng kết quả dưới dạng một mảng kết hợp. Ghi chú. Tên trường được trả về từ hàm này phân biệt chữ hoa chữ thường.
Mảng kết hợp nào được sử dụng để truyền dữ liệu tới PHP?Vòng lặp được sử dụng để duyệt qua các mảng Kết hợp trong PHP.
Hàm nào sẽ chỉ trả về một mảng kết hợp trong PHP?mysql_fetch_assoc() tương đương với việc gọi mysql_fetch_array() với MYSQL_ASSOC cho tham số thứ hai tùy chọn. Nó chỉ trả về một mảng kết hợp. |