Tôi có thể trả về mảng trong hàm trong PHP không?

❮ Tham chiếu mảng PHP

Thí dụ

Trả về tất cả các giá trị của một mảng (không phải các khóa)

$a=array("Tên"=>"Peter","Tuổi"=>"41","Quốc gia"=>"Hoa Kỳ");
print_r(giá_trị_mảng($a));
?>

Tự mình thử »


Định nghĩa và cách sử dụng

Hàm array_values() trả về một mảng chứa tất cả các giá trị của một mảng

Mẹo. Mảng trả về sẽ có các phím số, bắt đầu từ 0 và tăng lên 1


cú pháp

Giá trị tham số

Tham sốMảng mô tảBắt buộc. Chỉ định một mảng

chi tiết kỹ thuật

Giá trị trả về. Trả về một mảng chứa tất cả các giá trị của một mảngPhiên bản PHP. 4+
❮ Tham chiếu mảng PHP

Chúng tôi chủ yếu sử dụng các tham số chức năng để lấy 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ể định nghĩa các hàm 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

Câu lệnh trả về trong PHP

Các hàm trong PHP có thể có câu lệnh


72 tùy chọn. Khi được gọi từ bên trong một hàm, câu lệnh return 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 báo cáo trả về khác. Đây là một ví dụ

1

2
3
function multiple_returns($a, $b) {
4
    $x = 2*$a;
5
    $y = 3*$b;
6

0

1

2

3

4

5

6

7

8

9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
3
0
3
1
3
2
3
3
3
4
3
5
3
6
3
7
3
8
3
9
function multiple_returns($a, $b) {
0
function multiple_returns($a, $b) {
1
function multiple_returns($a, $b) {
2
function multiple_returns($a, $b) {
3

Lưu ý rằng việc chạy đoạn mã trên không lặp lại câu lệnh về giá trị của


73. Điều này là do hàm dừng thực thi sau câu lệnh return đầu tiên. Nếu bạn bỏ ghi chú dòng nơi chúng tôi sử dụng

74 để gán giá trị biến, cả

75 và

76 sẽ là

77 vì

74 chỉ hoạt động với 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 ta cũng có thể sử dụng nó để trả về một mảng chứa tất cả các giá trị mà chúng ta 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ị

1
________0____3_______
3
function multiple_returns($a, $b) {
4
    $x = 2*$a;
5
________9____10_______

0
4
5

2
2
3

3

5
    $x = 2*$a;
0

7

9
    $x = 2*$a;
3
2
0_______4_______9_______3_______2_______3_______4_______5_______2

Từ quan điểm của PHP, bạn vẫn trả về một giá trị, nhưng giá trị đó 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 hàm trả về nhiều giá trị

Chúng tôi chỉ trả về hai giá trị trong ví dụ trên. Tuy nhiên, mọi thứ có thể trở nên phức tạp một chút khi có nhiều giá trị hơn vì bạn phải ghi nhớ thứ tự đúng của các giá trị được trả về

Bắt đầu từ PHP 7. 1, bạn có thể sử dụng


74 với mảng kết hợp. Điều này có nghĩa là thứ tự mà bạn trả về các phần tử sẽ không ảnh hưởng đến các giá trị được chỉ định. Đây là một ví dụ

1

2
3
function multiple_returns($a, $b) {
4
    $x = 2*$a;
5
    $y = 3*$b;
6

0
    $y = 3*$b;
0

2
2
3

3

5
    $y = 3*$b;
5

7

9
    $y = 3*$b;
8
2
0
3
9
2
2
2
4
6
3
2
5
2
7
    $y = 3*$b;
8
2
9
3
9
3
0
3
2
function multiple_returns($a, $b) {
2

Bạn có thể thấy rằng các biến


75 và

76 nhận các giá trị giống nhau trong cả hai trường hợp vì các giá trị hiện đang được gán dựa trên khóa thay vì chỉ số

Bạn thậm chí không cần sử dụng


74 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ư

1

2
3
function multiple_returns($a, $b) {
4
    $x = 2*$a;
5
    $y = 3*$b;
6

0
    $y = 3*$b;
0

2
2
3

3

5

18

7

9
    $y = 3*$b;
8
2
0
3
9
2
2
2
4

26
2
5
2
7
    $y = 3*$b;
8
2
9
3
9
3
0
3
2
function multiple_returns($a, $b) {
2

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ừ một hàm PHP là trả về một đối tượng. Chúng ta có thể định nghĩa một lớp với các thuộc tính khác nhau bằng cách sử dụ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 nên sẽ tốn nhiều bộ nhớ hơn để lưu trữ nhiều thể hiện 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

1

2
3

39
4

41
5

43
6
2
3

0

2

48

3

5

51

7

53

9

55
2
0
2
2

58
2
4
2
3
2
5
2
7

63
2
9
3
0
    $y = 3*$b;
8
3
2

68
3
3
3
5
function multiple_returns($a, $b) {
2

Như bạn có thể thấy, chúng ta có thể lấy thành công nhiều giá trị ra khỏi hàm bằng cá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ể khắc phục hạn chế đó bằng cách đóng gói nhiều giá trị dưới dạng một mảng hoặc một đối tượng. Sau đó, bạn chỉ cần trả về mảng hoặc đối tượng từ hàm rồi truy cập các giá trị sau

Chúng ta có thể trả về một mảng từ một hàm trong PHP không?

Một hàm không thể trả về nhiều giá trị, nhưng có thể thu được kết quả tương tự bằng cách trả về một mảng .

Chúng ta có thể trả về một mảng từ một hàm không?

Lập trình C không cho phép trả về toàn bộ mảng làm đối số cho hàm . Tuy nhiên, bạn có thể trả về một con trỏ tới một mảng bằng cách chỉ định tên của mảng mà không có chỉ mục.

Làm cách nào để trả về giá trị trong mảng trong PHP?

Hàm array_values() trả về một mảng chứa tất cả các giá trị của một mảng. Mẹo. Mảng trả về sẽ có các phím số, bắt đầu từ 0 và tăng lên 1.

Tại sao chúng ta không thể trả về mảng từ hàm?

Không thể sao chép kiểu mảng trần trong ngôn ngữ C vì lý do lịch sử chủ yếu . Vì lý do này, không thể khởi tạo mảng bằng mảng, gán mảng cho mảng, truyền mảng theo giá trị dưới dạng tham số hoặc trả về mảng từ hàm.