Page 1 sur 1

Exploitation de fonction

Posté : 03 janv. 2007, 12:58
par xgregx
Bonjour,

J'ai créé une fonction (je commence) pour passer une date US en format "à la française". J'ai fait un truc dans le genre:

Code : Tout sélectionner

function DateToFrench($date) { $d = explode("-",$date); $date2 = $d[2]."-".$d[1]."-".$d[0]; return ($date2); }
Mon souci vient au niveau de l'appel.
Je require mon fichier avec mes fonctions.
Puis je boucle sur des dates avec l'appel à la fonction à chaque enregistrement et patatra, la date ne change pas alors que si j'insère le code de la fonction directement ça fonctionne.

Je pense que je me plante au niveau de l'appel.

Code : Tout sélectionner

$date = $var['repetition_date']; DateToFrench($date); echo "<p>".$date2."</p>";
Voyez vous un truc qui cloche? Merci d'avance!

Posté : 03 janv. 2007, 13:04
par fab
tu initialises nulle part la variable $date2
si je comprend bien tu veux que ça soit la date fr donc apres éxécution de ta fonction
$date2 = DateToFrench($date);
PS : j'ai compris ton probleme, une fonction est un morceau de code bien séparé les noms des variables qui sont déclarées dedans lui reste propre et en aucun cas elles sont utilisables a l'exterieur de la fonction.
Une fonction peut retourner une valeur grâce a return et dans ce cas faut utiliser la synthaxe que je t'ai donné plus haut... :)

Posté : 03 janv. 2007, 13:10
par xgregx
Merci beaucoup pour le tuyau!

Posté : 03 janv. 2007, 13:28
par Ryle
Modération :
xgregx, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.




En complément de ce que te dis fab, les variables à l'intérieur d'une fonction ont ce que l'on appelle une portée locale. Si une variable porte le même nom à l'extérieur de la fonction elle ne sera aucunement modifiée à moins que tu ne le spécifie explicitement avec le mot clé gobal :
$a = 10;
function foixDeux($valeur) {
  $a = $valeur * 2;  // la fonction ne retourne pas de valeur
}
foisDeux($a); // appel à la fonction
echo $a; // affiche 10
$a = 10;
function foixDeux($valeur) {
  $a = $valeur * 2;
  return $a; // la fonction retourne une valeur
}
$a = foisDeux($a); // appel à la fonction et récupération de la valeur retournée
echo $a; // affiche 20
$a = 10;
function foixDeux($valeur) {
  global $a; // la variable $a est déclarée comme globale, c'est donc celle en dehors de la fonction qui sera modifiée
  $a = $valeur * 2;  // la fonction ne retourne pas de valeur
}
foisDeux($a); // appel à la fonction
echo $a; // affiche 20