[PHP]paramètre pas fonctionnel dans une fonction

paramètre pas fonctionnel dans une fonction [PHP] - PHP - Programmation

Marsh Posté le 22-03-2013 à 11:27:03    

bonjour,
 
j'ai un soucis dans le passage de paramètre dans une fonction :
 
j'ai une function qui parse des dossiers et fichier et remplace si necessaire une chaine de caractere, elle fonctionne tres bien, ci dessous la declaration
 
function parcourir_repertoire($repertoire,$recherche,$replace,$remplacer=false)
{
...
}
 
avec le parametre $remplacer par defaut à false je peux choisir de remplacer ou simplement afficher le resultat de la recherche
 
jusque là tout fonctionne bien, mais c'est quand j'appelle la fonction que ça ne fonctionne pas correctement :
le dernier paramètre (donc $remplacer) n'est jamais pris en compte, je peux mettre true, la fonction n'en fera qu'a sa tête et prendra quand m^me false
 
parcourir_repertoire('\\\Info12\\InfoProvider\\83240C01','bdd.php','XXXXX',true);
 
je ne comprend pas pourquoi mon $remplacer=false prend systématiquement le pas sur les paramètre de l'appel?
 
help!
 
merci


Message édité par golumest le 22-03-2013 à 11:48:57
Reply

Marsh Posté le 22-03-2013 à 11:27:03   

Reply

Marsh Posté le 22-03-2013 à 14:36:34    

quand tu fais un print_r(func_get_args()); dans ladite fonction, $remplacer vaut true ou false?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 22-03-2013 à 15:46:53    

parcourir_repertoire('\\\Info12\\InfoProvider\\83240C01','toto','XXXXX',false);  
Array ( [0] => \\Info12\www\InfoProvider\83240C01 [1] => toto [2] => XXXXX [3] => )  
 
et
 
parcourir_repertoire('\\\Info12\\InfoProvider\\83240C01','bdd.php','XXXXX',true);  
Array ( [0] => \\Info12\www\InfoProvider\83240C01 [1] => toto [2] => XXXXX [3] => 1 )
 
 
par contre si j'agis directement sur le parametre de la fonction (dans la declaration même de la fonction), tout fonctionne :/
 
(merci de ton aide!)


Message édité par golumest le 22-03-2013 à 15:49:31
Reply

Marsh Posté le 25-03-2013 à 11:46:32    

Je comprends pas, le 2ème array renvoie les bonnes valeurs puisque lorsque tu mets "true", t'as 1 comme valeur donc c'est bon. je vois pas ton pb :??:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 25-03-2013 à 13:14:14    

oui, moi non plus je comprends pas!
c'est bien les arguments à l’intérieure de la fonction que j'affiche, elle prend bien les paramètres d'appel, mais elle utilise la valeur "par defaut" de la declaration de la fonction...
 
edit en revenant dessus, j'ai trouvé!
 
mon parcourir_repertoire() est une function recursive qui s'appelle elle-m^me, et dans l'appel interne, je ne passais pas mon paramètre $remplacer, elle prenait donc la valeur par defaut, soit false, quand elle s'appelait m^me!
 
Merci de t'être intéressé à mon pb!ça m'a quand même bien aidé!


Message édité par golumest le 25-03-2013 à 13:20:59
Reply

Marsh Posté le 25-03-2013 à 16:00:36    

T'aurais posté le code entier de la fonction aussi, on l'aurait vu de suite :/
 
Au passage, je te déconseille le récursif. Pas top niveaux perfs et consomme trop de ressources. Fait plutôt de l'itératif ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed