If you don’t pass any value to the function, it will use default argument value.
PHP default argument values is an example of passing arguments to function.
For example:
1 2 3 4 5 6 7 8 9 10 |
<?php function family($members = 5) { echo "In my family there are $members members.\n"; } family(); //will use default value family(2); ?> |
Output:
1 2 |
In my family there are 5 members. In my family there are 2 members. |
In above example, we don’t pass any value to function family().
But when it is call it will use default value.
As shown in first family() function call, it take 5 as value for $members.
But in second family() function call, it use value of $members is 2 because it is pass by function.
PHP allows the use of special type NULL as default values.
For example:
1 2 3 4 5 6 7 |
<?php function family($members) { echo "In my family there are $members members.\n"; } family(null); ?> |
Output:
1 |
In my family there are members. |
1 2 3 4 5 6 7 8 9 |
<?php function family($members = NULL) { echo "In my family there are $members members.\n"; } family(); ?> |
Output:
1 |
In my family there are members. |
Also PHP allows use of arrays as default values.
You can not use a variable, a class member or a function call as default value.
The default value must be a constant expression.
If you are going to use one default argument and another is non-default argument.
Then make sure any defaults should be on the right side of any non-default arguments.
Otherwise, things will not work as expected.
For example:
1 2 3 4 5 6 7 |
<?php function family($firstname = "Mike", $lastname) { echo "Full name is $firstname $lastname"; } family("Rio"); ?> |
Output:
1 |
Full name is Rio |
This above example won’t work as expected. Therefore the correct code is shown in below example:
1 2 3 4 5 6 7 8 9 10 11 |
<?php function family($lastname, $firstname = "Mike") { echo "Full name is $firstname $lastname"; } family("Rio"); ?> Output: <pre> Full name is Mike Rio |