2017-07-05 2 views
0

Voici mon code:Comment initialiser l'argument d'un tableau à sa valeur par défaut?

function myfunc($arg1, $arg2 = 'sth', $arg3 = 'sth else'){ 
    // do stuff 
} 

Maintenant, je veux définir une nouvelle valeur pour arg3 et conserver la valeur définie par défaut pour arg2. Comment puis je faire ça?

Quelque chose comme ceci:

myfunc(true, <keep everything defined as default>, $arg3 = 'new value'); 

Le résultat attendu est sth dans this fiddle.

+0

selon votre 'violon 'vous n'avez pas défini' $ arg2' avant d'appeler cette fonction –

+0

votre question n'est pas claire s'il vous plaît ajouter quelques explications supplémentaires. –

+0

@YaseenAhmed Je souhaite définir une valeur pour 'arg3' sans définir de valeur pour' arg2'. Comme vous le voyez, arg3 et arg2 sont optionnels. Et je veux utiliser la valeur par défaut définie pour 'arg2'. – stack

Répondre

3

Une alternative possible aurait pas votre fonction prend 3 paramètres, mais un seul, un tableau:

function my_function(array $value = array()) { 
    // if set, use $value['key1'] 
    // if set, use $value['key2'] 
    // ... 
} 

Et appeler cette fonction comme ceci:

my_function(array(
    'key1' => 'google', 
    'key2' => 'yahoo' 
)); 

Cela vous permettra de:

  1. accepter un certain nombre de paramètres
  2. qui pourrait être facultatif

Espérons que cela vous sera utile.

+0

Merci .. upvote – stack

+0

vous êtes les bienvenus :) –