Aucun return sur fonction toute simple
Bonsoir à tous,
voilà je vous explique mon petits soucis pourtant et sûrement bien anodin.
J'ai une fonction qui se charge de vérifier si un nom de fichier existe déjà (ex ici 'manon.jpg'), ce qui me permet de nommer mon fichier différemment si un autre fichier porte déjà le même nom.
Cette fonction marche très bien à un détail près. Elle ne me passe pas le return dans ma variable appelante ($myImgNameVerif), alors que l'echo de sortie de ma fonction me retourne bien le nouveau nom 'manon-1.jpg'
Voici ma fonction, ça sera plus parlant (cf comments code) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
function fExist($path,$file,$i=1){
//Si fichier existe, on rajoute un '-$i' avant l'extension
if (file_exists($path.'/'.$file)){
$newname=str_replace(substr($file,-4),'-'.$i.'.jpg',$file);
fExist($path,$newname,$i++);
}
//Si fichier n'existe pas, on retourne son nom
else{
echo $file; // Renvoie bien le nouveau nom de fichier 'manon-1.jpg'
return $file;
}
}
//Appel fonction contrôlant existance fichier
$myImgNameVerif=fExist($source,'manon.jpg');
//Affichage retour appel fonction pour obtenir nom fichier à utiliser
echo 'Verif :'.$myImgNameVerif; // Ne me renvoie rien !!!!! |
ex pour $file valant 'manon.jpg' avec fichier portant le même nom dans $path
Est ce que l'un de vous aurait une idée du pourquoi du comment ?
J'ai essayé tout un tas de choses : conversion variable retour en string dans fonction....
Par avance merci de vos retours.