Information may be passed to functions via the argument list, which is a comma-delimited list of expressions. The arguments are evaluated from left to right.
PHP supports passing arguments by value [the default], passing by reference, and default argument values. Variable-length argument lists are also supported.
Example #1 Passing arrays to functions
Passing arguments by reference
By default, function arguments are passed by value [so that if the value of the argument within the function is changed, it does not get changed outside of the function]. To allow a function to modify its arguments, they must be passed by reference.
To have an argument to a function always passed by reference, prepend an ampersand [&] to the argument name in the function definition:
Example #2 Passing function parameters by reference
Default argument values
A function may define C++-style default values for scalar arguments as follows:
Example #3 Use of default parameters in functions
The above example will output:
Making a cup of cappuccino. Making a cup of . Making a cup of espresso.
PHP also allows the use of
arrays and the special type NULL
as default values, for example:
Example #4 Using non-scalar types as default values
The default value must be a constant expression, not [for example] a variable, a class member or a function call.
Note that when using default arguments, any defaults should be on the right side of any non-default arguments; otherwise, things will not work as expected. Consider the following code snippet:
Example #5 Incorrect usage of default function arguments