Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2941 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  fonction perso foireuse

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

fonction perso foireuse

n°838527
momo194
Posté le 01-09-2004 à 08:41:56  profilanswer
 

BOnjour,
 
j'ai ce bout de code:

Code :
  1. function check_date($date0, $checkdateok)
  2. {
  3. $date0 = substr($date0, 6, 4)."-".substr($date0, 3,2)."-".substr($date0, 0,2);
  4. if((ereg("^([0-9]){4}([-])([0-9]){2}([-])([0-9]){2}$", $date0)) AND (substr($date0, 3,2) <= 12 ) AND (substr($date0, 0,2) <= 31))
  5. {
  6. echo "ok"."<br>";
  7. $checkdateok++;
  8. return ($checkdateok);
  9. }
  10. }
  11. $checkdateok = 0;
  12. check_date($_POST['date_debut'], $checkdateok);
  13. /*check_date($_POST['date_fin']);
  14. check_date($_POST['date_ultime_commande']);
  15. check_date($_POST['date_ultime_payement']);
  16. check_date($_POST['date_ultime_validation']);
  17. check_date($_POST['date_envois']) ;
  18. */
  19. echo "checkdateok : ".$checkdateok."<br><br>";


 
Qui m'affiche :

Code :
  1. ok
  2. checkdateok : 0


 
Je ne comprends pas pourquoi il n'incrémente pas $checkdateok.
 
quelqu'un peut m'éclairer ?
 
Merci

mood
Publicité
Posté le 01-09-2004 à 08:41:56  profilanswer
 

n°838529
black_lord
Truth speaks from peacefulness
Posté le 01-09-2004 à 08:46:26  profilanswer
 

faire un return sans rien mettre pour le recevoir voila qqch de particulièrement utile :gratgrat:


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°838530
momo194
Posté le 01-09-2004 à 08:48:01  profilanswer
 

Peux-tu préciser ce qu'il faudrait en plus ?
 
Merci

n°838531
black_lord
Truth speaks from peacefulness
Posté le 01-09-2004 à 08:49:55  profilanswer
 

affecte ce que retourne ton check_date :o
ta variable ne se modifie pas par l'opération du saint esprit :o
 
(est ce que PHP est ton premier langage de prog ? [:cupra])


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°838532
momo194
Posté le 01-09-2004 à 08:55:50  profilanswer
 

Oui, PHP est mon premier langage de prog.
 
MAIS, l'opérateur d'affectation n'est-il pas "=" ?
 
rien n'y fait pourtant quand à la place de "$checkdateok++;"
 
je mets "$checkdateok = $checkdateok+1;"
 
tu pourrais me dire la ligne précise que je dois ajouter ?
 
Merci


Message édité par momo194 le 01-09-2004 à 08:56:18
n°838539
black_lord
Truth speaks from peacefulness
Posté le 01-09-2004 à 09:10:29  profilanswer
 

lis ça : http://www.nexen.net/docs/php/anno [...] values.php
 
pour voir comment bien utiliser une fonction (et sa valeur de retour) si tu piges pas reviens voir ici :)


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°838540
momo194
Posté le 01-09-2004 à 09:13:57  profilanswer
 

Merci, all works perfect

n°852699
rufo
Pas me confondre avec Lycos!
Posté le 17-09-2004 à 15:25:01  profilanswer
 

Pour rappel, c'est parce que ta variable dans ton prgm principal porte le même nom que le paramètre d'une de tes fonctions que c'est la même variable...


Message édité par rufo le 17-09-2004 à 15:26:12
n°852716
black_lord
Truth speaks from peacefulness
Posté le 17-09-2004 à 15:43:18  profilanswer
 

rufo a écrit :

Pour rappel, c'est parce que ta variable dans ton prgm principal porte le même nom que le paramètre d'une de tes fonctions que c'est la même variable...


 
 [:burtonsnowboard]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°852733
fodger
ARRRACHHEE TTAAA FFFOUUFFOUNE!
Posté le 17-09-2004 à 16:08:40  profilanswer
 

C'est pas gégé d'utiliser les mêmes noms de variables partout...

mood
Publicité
Posté le 17-09-2004 à 16:08:40  profilanswer
 

n°852867
Snoopy71
Posté le 17-09-2004 à 19:20:39  profilanswer
 

Soit tu passes ta variable en global, soit tu affectes le retour de fonction.
 
Une variable à l'intérieur d'une fonction est isolée jusqu'à preuve explicite du contraire... donc dans ton prog $toto est différent du $toto qui se trouverait dans function my_func($toto).
 
Donc soit tu fais :

Code :
  1. function check_date($date0)
  2. {
  3. global $checkdateok;
  4. $date0 = substr($date0, 6, 4)."-".substr($date0, 3,2)."-".substr($date0, 0,2);
  5. if((ereg("^([0-9]){4}([-])([0-9]){2}([-])([0-9]){2}$", $date0)) AND (substr($date0, 3,2) <= 12 ) AND (substr($date0, 0,2) <= 31))
  6. {
  7. echo "ok"."<br>";
  8. $checkdateok++;
  9. }
  10. }
  11. $checkdateok = 0;
  12. check_date($_POST['date_debut']);
  13. echo "checkdateok : ".$checkdateok."<br><br>";


si c'est pour utiliser la variable chckdate de façon cumulative tout au long de ton programme.
soit si c'est ponctuel et unique, tu peux faire comme ça ( toto permettant de faire l'incrément au besoin ):
 

Code :
  1. function check_date($date0, $toto)
  2. {
  3. $date0 = substr($date0, 6, 4)."-".substr($date0, 3,2)."-".substr($date0, 0,2);
  4. if((ereg("^([0-9]){4}([-])([0-9]){2}([-])([0-9]){2}$", $date0)) AND (substr($date0, 3,2) <= 12 ) AND (substr($date0, 0,2) <= 31))
  5. {
  6. echo "ok"."<br>";
  7. $toto++;
  8. return ($toto);
  9. }
  10. }
  11. $checkdateok = 0;
  12. $checkdateok = check_date($_POST['date_debut'], $toto);
  13. echo "checkdateok : ".$checkdateok."<br><br>";


 
 
 
EDIT :
Dans la version 2, tu peux aussi faire  
$checkdateok = check_date($_POST['date_debut'], $checkdateok );  
ou  
$checkdateok = check_date($_POST['date_debut'], $ma_variable_a_moi );  
ca deviendra quand même $toto une fois dans la fonction :)


Message édité par Snoopy71 le 17-09-2004 à 19:22:33

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  fonction perso foireuse

 

Sujets relatifs
Rendre récursive une fonction de listage.fonction "exec"
aide fonction qui appel l'événment OnActivate chaque 3 minutes[c#] Fonction pour la téléphonie
fonction ou macro excelJS: window.onload Comment l'appeler avec 2 fonction /=
[Caml] Probleme resolution fonctionSQL fonction conversion vers date
question concernant la fonction copy()Problème avec un boucle For Each et une fonction recursive
Plus de sujets relatifs à : fonction perso foireuse


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR