Exploitation de fonction

Eléphant du PHP | 64 Messages

03 janv. 2007, 12:58

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!

ViPHP
fab
ViPHP | 2657 Messages

03 janv. 2007, 13:04

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... :)
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Eléphant du PHP | 64 Messages

03 janv. 2007, 13:10

Merci beaucoup pour le tuyau!

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

03 janv. 2007, 13:28

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
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...