JeuWeb - Crée ton jeu par navigateur
[réglé] argument indéfini avec valeur par défaut - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [réglé] argument indéfini avec valeur par défaut (/showthread.php?tid=787)



[réglé] argument indéfini avec valeur par défaut - Raoull - 11-02-2007

J'ai beau lire le manuel php dans tous les sens, je ne trouve pas de solution...

Je veux créer une fonction qui prends 2 arguments.

Le 1er argement est une chaine de caractères, avec une valeur par défaut.

Comme je veux absolument que cet argument soit placé en premier, et qu'il a une valeur par défaut, le 2eme argument doit avoir une valeur par défaut aussi.

Mon probleme, c'est que je ne connais pas le type du 2eme argument, car je veux pouvoir lui passer une chaine ou bien un tableau de chaine.

Voici ce que je veux faire, à l'envers :

Code PHP :
<?
function foobar ($var2, $var1 = 'fraise') {
// traitement de $var2
if (is_array($var2)) {
...
}
else {
...
}
}
Je veux une fonction de ce style, mais pour inverser l'ordre des arguments dans l'appel à la fonction, je dois donner une valeur par défaut à $var2... Vu que je ne sais pas si c'est une chaine un tableau ... comment lui donner une valeur par défaut ?


RE: argument indéfini avec valeur par défaut - Raoull - 11-02-2007

J'ai trouvé finallement, le manuel done nla solution, mais pas explicitement disons Wink
donner la valeur NULL, et tester avec is_null, ca marche nickel

Code PHP :
<?php 
function foobar ($var1 = 'fraise', $var2 = NULL) {
if (!
is_null($var2)) {
if (
is_array($var2)) {
...
}
else {
...
}
}
else {
// erreur = $var2 est vide
}
}

ya une autre sultion, faire une fonction avec un nombre d'argument variable, et y utiliser la panoplie get_num_args, get_fonc_arg, etc. mais c'est plus lourd...