Backend Development 4 min read

Understanding PHP Function Parameter Passing: Pass‑by‑Value, Pass‑by‑Reference, Multiple, Default and Variable‑Length Arguments

This article explains PHP function parameter passing mechanisms, covering pass‑by‑value versus pass‑by‑reference, how to pass multiple arguments, use default parameters, and handle variable‑length arguments with examples and code snippets.

php中文网 Courses
php中文网 Courses
php中文网 Courses
Understanding PHP Function Parameter Passing: Pass‑by‑Value, Pass‑by‑Reference, Multiple, Default and Variable‑Length Arguments

PHP is a widely used language for backend web development, and understanding how function parameters are passed is essential. This article provides a detailed guide to PHP function parameter passing.

Pass‑by‑Value and Pass‑by‑Reference

In PHP, there are two ways to pass arguments to a function: by value and by reference. Passing by value copies the argument's value to the parameter, so modifications inside the function do not affect the original variable. Passing by reference passes the variable's memory address, allowing the function to modify the original value directly.

Example:

<code>function addOne($a){
    $a++;
}

function addOneRef(&$a){
    $a++;
}

$num = 1;
addOne($num);
echo $num;   // outputs 1 because $num was not changed

addOneRef($num);
echo $num;   // outputs 2 because $num was modified</code>

Passing Multiple Parameters

PHP allows multiple parameters by defining several formal parameters in the function signature and providing the same number of actual arguments when calling the function. The order of arguments must match the order of parameters.

Example:

<code>function calculate($a, $b, $c){
    return ($a + $b) * $c;
}

echo calculate(1, 2, 3);    // outputs 9</code>

Default Parameters

When defining a function, you can assign default values to some parameters so that callers may omit them.

Example:

<code>function welcome($name, $age = 18){
    echo "Welcome, $name, you are $age years old!";
}

welcome("Xiao Ming");   // outputs: Welcome, Xiao Ming, you are 18 years old!
welcome("Xiao Hua", 20); // outputs: Welcome, Xiao Hua, you are 20 years old!</code>

Variable‑Length Parameters

When the number of arguments is uncertain, PHP provides func_get_args() and func_num_args() to retrieve all arguments and their count.

Example:

<code>function sum(){
    $result = 0;
    $args = func_get_args(); // get all arguments
    $count = func_num_args(); // get number of arguments
    for($i = 0; $i < $count; $i++){
        $result += $args[$i];
    }
    return $result;
}

echo sum(1, 2, 3, 4);   // outputs 10</code>

These are the basic concepts of PHP function parameter passing. Developers should choose the appropriate passing method based on the specific requirements, use default and variable‑length parameters wisely, and be aware of potential performance and error issues when mixing pass‑by‑value and pass‑by‑reference.

backendPHPfunctionParameterspass-by-referencevariable-lengthdefault arguments
php中文网 Courses
Written by

php中文网 Courses

php中文网's platform for the latest courses and technical articles, helping PHP learners advance quickly.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.