0
0
PhpHow-ToBeginner · 3 min read

How to Use Variable Number of Arguments in PHP

In PHP, you can handle a variable number of arguments in a function using func_get_args() or by declaring a variadic parameter with .... The variadic syntax function example(...$args) collects all extra arguments into an array for easy use.
📐

Syntax

There are two main ways to accept variable arguments in PHP functions:

  • Using func_get_args(): Call this function inside your function to get an array of all passed arguments.
  • Using variadic parameters (...): Declare a parameter with ... before its name to collect all extra arguments into an array.

Variadic syntax is cleaner and recommended for PHP 5.6 and later.

php
<?php
// Using func_get_args()
function example1() {
    $args = func_get_args();
    foreach ($args as $arg) {
        echo $arg . "\n";
    }
}

// Using variadic parameters
function example2(...$args) {
    foreach ($args as $arg) {
        echo $arg . "\n";
    }
}
?>
💻

Example

This example shows a function that sums any number of numeric arguments using variadic parameters.

php
<?php
function sumNumbers(...$numbers) {
    $sum = 0;
    foreach ($numbers as $num) {
        $sum += $num;
    }
    return $sum;
}

echo sumNumbers(1, 2, 3, 4); // Outputs 10
?>
Output
10
⚠️

Common Pitfalls

Common mistakes include:

  • Using func_get_args() inside functions with declared parameters, which can cause confusion.
  • Forgetting that variadic parameters must be the last in the parameter list.
  • Not checking argument types when expecting specific data.

Always validate arguments if your function expects certain types.

php
<?php
// Wrong: variadic parameter not last
// function wrong(...$args, $extra) {}

// Correct:
function correct($extra, ...$args) {
    // ...
}
?>
📊

Quick Reference

FeatureDescription
func_get_args()Returns an array of all passed arguments inside the function.
Variadic parameter (...$args)Collects all extra arguments into an array automatically.
Parameter positionVariadic parameter must be last in the function parameter list.
Type checkingValidate arguments inside the function if needed.

Key Takeaways

Use variadic parameters (...$args) for clean and modern variable argument handling.
func_get_args() works but is less clear and can be confusing with declared parameters.
Variadic parameters must always be the last in the function's parameter list.
Always validate argument types when your function expects specific data.
Variable arguments are collected as an array for easy looping and processing.