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

Hai biến không thể được trả về rõ ràng, chúng có thể được đặt trong cấu trúc dữ liệu danh sách/mảng và được trả về

Thí dụ

Bản thử trực tiếp

function factors( $n ) {
   // An empty array is declared
   $fact = array();
   // Loop through it
   for ( $i = 1; $i < $n; $i++) {
      // Check if i is the factor of
      // n, push into array
      if( $n % $i == 0 )
      array_push( $fact, $i );
   }
   // Return array
   return $fact;
}
// Declare a variable and initialize it
$num = 12;
// Function call
$nFactors = factors($num);
// Display the result
echo 'Factors of ' . $num . ' are: 
'; foreach( $nFactors as $x ) {    echo $x . "
"; }

đầu ra

Điều này sẽ tạo ra đầu ra sau -

Factors of 12 are:
1
2
3
4
6

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


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

dòng 3. chúng tôi có một hàm gọi là tính toán và nó chấp nhận 2 đối số mà chúng tôi đang gán cho các biến $number1 và $number2

dòng 5. chúng tôi đang thêm 2 số và gán câu trả lời cho $add

dòng 6. chúng tôi đang trừ 2 số và gán câu trả lời cho $subtract

dòng 7. chúng tôi đang nhân 2 số và gán câu trả lời cho $multiply

dòng 8. chúng tôi đang trả về một mảng với 3 câu trả lời

Dòng 12. chúng ta in mảng trả về sau khi gọi hàm tính toán với đối số 3 và 5

Đầu ra sẽ trông như thế này

Chúng ta có thể thấy 3 câu trả lời từ cộng, trừ và nhân 3 và 5

Để xuất kết quả theo cách đẹp hơn, chúng ta có thể làm một cái gì đó như thế này

Đầu ra sẽ là

Chúng tôi thậm chí có thể tạo một vòng lặp và làm điều gì đó như thế này

Điều quan trọng cần nhớ là vị trí mảng bắt đầu từ 0, không phải 1

Ở dòng 13 tôi đã khai báo một mảng khác để lưu trữ các toán tử

Ở dòng 16, tôi đã bắt đầu một vòng lặp đơn giản để xem qua từng câu trả lời và lặp lại kết quả. Điều này hoạt động vì tôi biết những toán tử nào trong hàm

Có nhiều cách khác chúng ta có thể tiếp cận vấn đề này. nhưng, tại sao lại làm cho mọi thứ trở nên phức tạp hơn mức cần thiết

Theo truyền thống, các hàm trong PHP cho phép bạn chỉ trả về một giá trị tại một thời điểm. Tuy nhiên, đôi khi bạn có thể cần trả về nhiều giá trị từ một hàm. May mắn thay, có một vài cách giải quyết để trả về nhiều giá trị trong PHP

1. Sử dụng một mảng

Cách giải quyết đầu tiên là sử dụng một mảng để lưu trữ tất cả các trường bắt buộc và trả về mảng đó từ hàm. Ví dụ: giải pháp sau lưu trữ tất cả các giá trị sẽ được trả về trong một mảng và trả về giá trị đó từ hàm. Sau đó, nó sử dụng cấu trúc danh sách để truy cập các giá trị mảng. list() có thể hoạt động trên các mảng số và gán các biến như thể chúng là một mảng

1

2

3

4

5

6

7

8

9

10

11

12

13

hàm getAddress()

{

    trả về mảng('221B', 'Baker Street', 'London', 'United Kingdom');

}

 

list($flat, $street, $city, $country) = getAddress();

echo "$flat $street, $city, $country";

 

/*

đầu ra. 221B Phố Baker, Luân Đôn, Vương Quốc Anh

*/

?>

Tải xuống Chạy mã

 
Để nội dung rõ ràng hơn, bạn có thể sử dụng mảng kết hợp. Đây là phiên bản sạch hơn của đoạn mã trên trả về thông tin trường cho người gọi.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

hàm getAddress()

{

    trả về mảng('Phẳng' => '221B',

                        'Street' => 'Baker Street',

                        'Thành phố' => 'Luân Đôn'<,

                        'Quốc gia' => 'Vương quốc Anh'

            );

}

 

$result = getAddress();

echo "{$result['Flat']} {$result['Street']}, {$result['City']}, {$result[';

 

/*

đầu ra. 221B Phố Baker, Luân Đôn, Vương Quốc Anh

*/

?>

Tải xuống Chạy mã

2. Sử dụng một đối tượng

Thay vì trả về một mảng, bạn cũng có thể trả về một đối tượng từ hàm. Để chứng minh, đoạn mã PHP sau đây tạo một thể hiện của lớp stdClass với toán tử new, thêm các thuộc tính động cho các trường bắt buộc và cuối cùng trả về đối tượng từ hàm. Điều này rất hữu ích vì nó chuyển thông tin trường đến người gọi

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

hàm getAddress()

{

    $obj = mới stdClass;

    $obj->bằng phẳng = '221B';

    $obj->đường = 'Baker Street';

    $obj->thành phố = 'London';

    $obj->quốc gia = 'United Kingdom';

    return $obj;

}

 

$address = getAddress();

echo "$address->flat $address->street, $address->city, $address->country";<

 

/*

đầu ra. 221B Phố Baker, Luân Đôn, Vương Quốc Anh

*/

?>

Tải xuống Chạy mã

3. Chuyển qua tham chiếu

Cuối cùng, bạn có thể truyền nhiều giá trị cho hàm theo tham chiếu, điều này cho phép hàm sửa đổi biến. Tất cả các thay đổi được thực hiện đối với biến tham chiếu bên trong hàm sẽ được phản ánh trong chính biến ban đầu. Giải pháp sau đây trình bày cách khai báo các tham số hàm dưới dạng tham chiếu. Lưu ý rằng không có dấu hiệu tham chiếu nào trong lệnh gọi hàm mà chỉ có trên các định nghĩa hàm

Tôi có thể trả về nhiều giá trị 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.

Làm cách nào tôi có thể trả về nhiều giá trị?

Bạn có thể trả về nhiều giá trị bằng cách gộp các giá trị đó vào một từ điển, bộ hoặc danh sách . Các loại dữ liệu này cho phép bạn lưu trữ nhiều giá trị tương tự. Bạn có thể trích xuất các giá trị riêng lẻ từ chúng trong chương trình chính của mình. Hoặc, bạn có thể chuyển nhiều giá trị và phân tách chúng bằng dấu phẩy.

Phương thức có thể trả về nhiều giá trị không?

Bạn chỉ có thể trả về một giá trị trong Java. Nếu cần, bạn có thể trả về nhiều giá trị bằng cách sử dụng mảng hoặc đối tượng .

Làm cách nào để kiểm tra nhiều giá trị trong điều kiện if trong PHP?

nếu. câu lệnh khác - thực thi một số mã nếu điều kiện là đúng và mã khác nếu điều kiện đó sai. nếu. khác. câu lệnh khác - thực thi các mã khác nhau cho hơn hai điều kiện. câu lệnh chuyển đổi - chọn một trong nhiều khối mã sẽ được thực thi.