Quelle est la signification des paramètres de longueur variable en PHP ? Peut-il être implémenté à l'aide d'un tableau ?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-06-14 10:49:43
0
5
1079
<?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é ?

曾经蜡笔没有小新
曾经蜡笔没有小新

répondre à tous(5)
習慣沉默

Cela signifie que vous n'avez pas besoin de déclarer un tableau séparément

我想大声告诉你

Vous pouvez le comprendre comme du sucre syntaxique
func_get_argsIl 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); 
}
}
学霸

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.

我想大声告诉你

redis.lpush scène

public function lPush( $key, $value1, $value2 = null, $valueN = null ) {}
迷茫

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é

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal