Maison >développement back-end >tutoriel php >Comment passer un tableau comme arguments à une fonction en PHP ?

Comment passer un tableau comme arguments à une fonction en PHP ?

DDD
DDDoriginal
2024-11-10 06:03:02858parcourir

How to Pass an Array as Arguments to a Function in PHP?

Passer un tableau en tant qu'arguments, pas un tableau

En PHP, il existe des moyens de transmettre un tableau sous forme de liste d'arguments à un fonction. Ceci peut être réalisé en utilisant l'opérateur spread (...) ou call_user_func_array(). Explorons les méthodes :

Opérateur Spread (introduit dans PHP 5.6)

L'opérateur spread, également connu sous le nom d'"opérateur splat", est un moyen concis et performant pour décompresser un tableau en tant qu'arguments.

function variadic(...$args) {
    echo implode(' ', $args);
}

$array = ['Hello', 'World'];

// Splatting the $array
variadic(...$array); // Output: 'Hello World'

Notez que les éléments de tableau indexés sont mappés à des arguments en fonction de leur position, et non clés.

call_user_func_array()

call_user_func_array() est une méthode moins efficace mais toujours utile pour transmettre un tableau en tant qu'arguments.

function variadic($arg1, $arg2) {
    echo $arg1 . ' ' . $arg2;
}

$array = ['Hello', 'World'];

// Using call_user_func_array()
call_user_func_array('variadic', $array); // Output: 'Hello World'

En PHP 8, vous pouvez exploiter les arguments nommés lorsque vous utilisez l'opérateur spread avec associatif tableaux :

function variadic(string $arg2, string $arg1) {
    echo $arg1 . ' ' . $arg2;
}

$array = ['arg2' => 'Hello', 'arg1' => 'World'];

variadic(...$array); // Output: 'World Hello'

L'opérateur de propagation est la méthode recommandée en raison de ses performances et de sa commodité supérieures.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn