Maison > Questions et réponses > le corps du texte
<?php
function test(...$args)
{
print_r($args);
}
test(1,2,3);
//输出
Array
(
[0] => 1
[1] => 2
[2] => 3
)
?>
Vous pouvez mettre les paramètres dans le tableau lors de l'appel de test
Quelle est la nécessité de cette nouvelle fonctionnalité ?
習慣沉默2017-06-14 10:51:43
Cela signifie que vous n'avez pas besoin de déclarer un tableau séparément
我想大声告诉你2017-06-14 10:51:43
Vous pouvez le comprendre comme du sucre syntaxiquefunc_get_args
Il peut être implémenté, mais parfois ce n'est pas si élégant
function sort($mode,...$args) {
if($mode === SORT_DESC) {
print_r($args);
}
}
function sort() {
$args = func_get_args();
if($args[0] === SORT_DESC){
array_shift($args);// 去除mode
print_r($args);
}
}
欧阳克2017-06-14 10:51:43
Par exemple, lorsque vous souhaitez appeler une interface, les adresses de service de nombreuses interfaces sont les mêmes, mais elles sont exécutées par leurs classes et méthodes respectives. Si vous souhaitez encapsuler, vous ne pouvez pas déterminer le type et le numéro du paramètre. , $className est votre classe spécifique, $actionName est la méthode exécutée dans la classe
.call_user_func_array([$className, $actionName], $params)
De cette façon, il vous est difficile de gérer divers paramètres en un seul endroit. Ce qui est pratique est que lors de l'écriture de l'interface d'appel spécifique, les paramètres sont transmis selon les règles, mais l'appel et le retour réels sont uniformément transmis par $. paramètres. Bien que PHP soit du même type, l'interface que vous appelez peut être écrite dans d'autres langages statiques et le type doit être cohérent.
Bien sûr, si vous ne l'utilisez qu'une seule fois, vous pouvez simplement transmettre la variable directement, pas besoin de vous embêter.
我想大声告诉你2017-06-14 10:51:43
redis.lpush
scène
public function lPush( $key, $value1, $value2 = null, $valueN = null ) {}
迷茫2017-06-14 10:51:43
C'est juste du sucre syntaxique, avec des paramètres variables. De nombreux langages l'ont implémenté, et PHP l'a également implémenté