Chúng tôi chủ yếu sử dụng các tham số chức năng để có được dữ liệu bên ngoài bên trong một chức năng để xử lý thêm. Tương tự, chúng tôi trả về các giá trị từ hàm PHP để có quyền truy cập vào dữ liệu được xử lý bên ngoài hàm. Bạn có thể xác định các chức năng trong PHP có hoặc không có giá trị trả về.
Mặc dù một hàm trong PHP có thể có nhiều tham số, nhưng nó không thể có nhiều câu lệnh trả về. Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách trả về nhiều giá trị từ một hàm trong PHP.
- Trả lại báo cáo trong PHP
- Sử dụng một mảng để trả về nhiều giá trị
- Sử dụng một đối tượng để trả về nhiều giá trị
Trả lại báo cáo trong PHP
Các chức năng trong PHP có thể có một câu lệnh return
tùy chọn. Khi được gọi từ bên trong một hàm, một câu lệnh trả về ngay lập tức tạm dừng việc thực thi bất kỳ mã nào khác. Điều này cũng bao gồm các tuyên bố hoàn trả khác. Đây là một ví dụ:
Lưu ý rằng việc chạy mã trên không lặp lại câu lệnh về giá trị của $y
. Điều này là do chức năng dừng thực thi sau câu lệnh trả về đầu tiên. Nếu bạn giải quyết dòng mà chúng tôi sử dụng list[]
để gán các giá trị biến, cả $m
và $n
sẽ là ____10 vì list[]
chỉ hoạt động với các mảng và hàm chỉ trả về một số.
Sử dụng một mảng để trả về nhiều giá trị
Chúng tôi biết rằng một câu lệnh trả về có thể trả về bất kỳ loại giá trị nào. Do đó, chúng tôi cũng có thể sử dụng nó để trả về một mảng sẽ chứa tất cả các giá trị chúng tôi thực sự muốn trả về. Chúng ta có thể viết lại ví dụ trên như sau để trả về nhiều giá trị:
Từ quan điểm của PHP, bạn vẫn đang trả lại một giá trị duy nhất, nhưng giá trị đơn đó là một mảng có thể chứa nhiều giá trị khác. Đây là một trong những cách dễ nhất trong PHP để mô phỏng sự trở lại của nhiều giá trị bằng một hàm.
Chúng tôi chỉ trả lại hai giá trị trong ví dụ trên. Tuy nhiên, mọi thứ có thể có một chút khó khăn khi có nhiều giá trị có liên quan vì bạn phải giữ đúng thứ tự của các giá trị được trả về trong tâm trí.
Bắt đầu từ Php 7.1, bạn có thể sử dụng list[]
với các mảng kết hợp. Điều này có nghĩa là thứ tự bạn trả về các phần tử sẽ không ảnh hưởng đến các giá trị được gán. Đây là một ví dụ:
Bạn có thể thấy rằng các biến $m
và $n
nhận được cùng một giá trị trong cả hai trường hợp vì các giá trị hiện đang được gán dựa trên các khóa thay vì các chỉ số số.
Bạn thậm chí không cần sử dụng list[]
từ PHP 7.1 trở đi vì PHP hiện hỗ trợ cú pháp phá hủy. Chúng ta có thể viết lại ví dụ trước như:
Sử dụng một đối tượng để trả về nhiều giá trị
Một cách khác để trả về nhiều giá trị từ hàm PHP là trả về một đối tượng. Chúng ta có thể xác định một lớp với các thuộc tính khác nhau bằng các biến thành viên công cộng. Một nhược điểm của kỹ thuật này là bạn sẽ phải viết nhiều mã hơn, vì vậy nó sẽ tiêu thụ nhiều bộ nhớ hơn để lưu trữ nhiều trường hợp của lớp. Ưu điểm là bạn sẽ có thể sử dụng cùng một bộ biến ở nhiều nơi.
Như bạn có thể thấy, chúng tôi đã có thể nhận được nhiều giá trị ra khỏi hàm bằng cách chỉ tạo một đối tượng và gán các giá trị cho các thuộc tính khác nhau của nó.
Suy nghĩ cuối cùng
Trong hướng dẫn này, bạn đã học được rằng PHP không cho phép bạn trả về trực tiếp nhiều giá trị từ một hàm. Tuy nhiên, bạn có thể hiểu được giới hạn đó bằng cách đóng gói nhiều giá trị dưới dạng mảng hoặc một đối tượng. Sau đó, bạn chỉ cần trả lại mảng hoặc đối tượng từ hàm và sau đó truy cập các giá trị sau.
Bạn có thấy bài đăng này hữu ích?
Freelancer, người hướng dẫn
Tôi là một nhà phát triển đầy đủ, người cũng thích viết các hướng dẫn. Sau khi thử một loạt những điều cho đến năm thứ hai của đại học, tôi quyết định làm việc về các kỹ năng phát triển web của mình. Bắt đầu chỉ với HTML và CSS, tôi tiếp tục tiến về phía trước và có được kinh nghiệm trong PHP, JavaScript và Python. Tôi thường dành thời gian rảnh của mình hoặc làm việc cho một số dự án phụ hoặc đi du lịch xung quanh.