Câu lệnh return có thể trả về 2 giá trị không?

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
  • 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ị

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

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

<?php
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
<?php
2
3
function multiple_returns($a, $b) {
4
    $x = 2*$a;
5
    $y = 3*$b;
1
0
<?php
0
<?php
1
<?php
2
<?php
3
<?php
4
<?php
5
<?php
6
<?php
7
<?php
8
<?php
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

<?php
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
<?php
74 để gán giá trị biến, cả
<?php
75 và
<?php
76 sẽ là
<?php
77 vì
<?php
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
<?php
2
3
function multiple_returns($a, $b) {
4
    $x = 2*$a;
5
    $y = 3*$b;
1
0
<?php
0
4
5
<?php
2
2
3
<?php
3
<?php
5
    $x = 2*$a;
0
<?php
7
<?php
9
    $x = 2*$a;
3
2
0
3
9
2
2
2
4
function multiple_returns($a, $b) {
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

<?php
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
<?php
2
3
function multiple_returns($a, $b) {
4
    $x = 2*$a;
5
    $y = 3*$b;
1
0
<?php
0
    $y = 3*$b;
0
<?php
2
2
3
<?php
3
<?php
5
    $y = 3*$b;
5
<?php
7
<?php
9
    $y = 3*$b;
8
2
0
3
9
2
2
2
4
1
03
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

<?php
75 và
<?php
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 các khóa thay vì chỉ số

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

<?php
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
<?php
2
3
function multiple_returns($a, $b) {
4
    $x = 2*$a;
5
    $y = 3*$b;
1
0
<?php
0
    $y = 3*$b;
0
<?php
2
2
3
<?php
3
<?php
5
<?php
18
<?php
7
<?php
9
    $y = 3*$b;
8
2
0
3
9
2
2
2
4
<?php
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 khai. 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
<?php
2
3
<?php
39
4
<?php
41
5
<?php
43
1
0
2
3
<?php
0
<?php
2
<?php
48
<?php
3
<?php
5
<?php
51
<?php
7
<?php
53
<?php
9
<?php
55
2
0
2
2
<?php
58
2
4
2
3
2
5
2
7
<?php
63
2
9
3
0
    $y = 3*$b;
8
3
2
<?php
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

Một hàm có thể có 2 câu lệnh return không?

Một hàm có thể có nhiều hơn một câu lệnh trả về , nhưng chỉ được chạy một câu lệnh dựa trên một điều kiện.

Câu lệnh return có thể trả về bao nhiêu giá trị?

Như chúng ta đã thấy ở trên, chúng ta không thể trả về nhiều giá trị cùng một lúc. Lý do cho điều này là chúng ta đang trả về các giá trị bằng cách sử dụng câu lệnh return. Câu lệnh này chỉ có thể xử lý một giá trị tại một thời điểm và chúng tôi chỉ có thể sử dụng một câu lệnh trả về cho mỗi hàm (câu lệnh thứ hai và tiếp theo là một phần của mã chết)

Bạn có thể trả về 2 giá trị trong Python không?

Khoa học dữ liệu thực tế sử dụng Python . Các giá trị này có thể được lưu trữ trực tiếp trong các biến. Một hàm không bị hạn chế trả về một biến, nó có thể trả về 0, một, hai hoặc nhiều giá trị. Python functions can return multiple values. These values can be stored in variables directly. A function is not restricted to return a variable, it can return zero, one, two or more values.