How to return multiple values from function in PHP?

PHP doesn’t support to return multiple values in a function. Inside a function when the first return statement is executed, it will direct control back to the calling function and second return statement will never get executed. However, there are ways to work around this limitation.
The multiple values can be returned from a function by using an array.

Example 1: This example shows how to return multiple values from a function in PHP. First, create an empty array end push the element to the array and then return the array.

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
// Function to return the array
// of factors of n
function factors( $n ) { 
      
    // Declare an empty array
    $fact = array();
      
    // Loop to find the 
    for ( $i = 1; $i < $n; $i++) { 
      
        // Check if i is the factor of
        // n then pusj it into array
        if( $n % $i == 0 )
            array_push( $fact, $i );
    }
      
    // Return the array
    return $fact;
  
// Declare a variable and initialize it
$num = 24;
  
// Function call
$nFactors = factors($num);
  
// Display the result
echo 'Factors of ' . $num . ' are: <br>';
  
foreach( $nFactors as $x ) {
    echo $x . "<br>";
}
  
?>

chevron_right


Output:

Factors of 24 are: 
1
2
3
4
6
8
12

Example 2: This example uses list function to store the swapped value of variable. It is used to assign array values to multiple variables at the same time. The multiple values returned in array from the function can be assigned to coresponding variables using list().

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
// Function to swap two numbers
function swap( $x, $y ) { 
    return array( $y, $x );
  
// Declare variable and initialize it
$a = 10;
$b = 20;
  
echo 'Before swapping the elements <br>';
  
// Display the value of a and b
echo 'a = ' . $a . '<br>' . 'b = ' . $b . '<br>';
  
// Function call to swap the value of a and b
list($a, $b) = swap($a, $b);
  
echo 'After swapping the elements <br>';
  
// Display the value of a and b
echo 'a = ' . $a . '<br>' . 'b = ' . $b . '<br>';
  
?>

chevron_right


Output:

Before swapping the elements 
a = 10
b = 20
After swapping the elements
a = 20
b = 10


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.