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

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Probleme avec les fonctions

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Probleme avec les fonctions

n°238359
players
Posté le 01-11-2002 à 17:21:17  profilanswer
 

Bonjour,
 
Pouvez vous me dire pourquoi il ne m'affiche pas le $tbl à la fin de la fonction:

Code :
  1. test("13","0" );
  2. function test($nombre,$nbfois){
  3. if ($nombre > "5" )
  4. {
  5. //si le nombre est sup à 5
  6. $nombre=$nombre-"5";
  7. $nbfois=$nbfois+"1";
  8. $tbl=array($nbfois=> '5');
  9. //print_r($tbl);
  10. test($nombre,$nbfois);
  11. }
  12. elseif ($nombre == "5" )
  13. {
  14. //si le nombre est egal à 5
  15. $tbl=array(1=> '5');
  16. }
  17. else
  18. {
  19. //si le nombre est inférieur à 5
  20. echo 'nombre inferieur à 5<br>';
  21. echo $nombre;
  22. }
  23. return $tbl;
  24. }
  25. print_r($tbl);


 
merci d'avance


Message édité par players le 01-11-2002 à 19:21:58
mood
Publicité
Posté le 01-11-2002 à 17:21:17  profilanswer
 

n°238376
omega2
Posté le 01-11-2002 à 19:24:17  profilanswer
 

players a écrit a écrit :

Bonjour,
 
Pouvez vous me dire pourquoi il ne m'affiche pas le $tbl:

Code :
  1. test("13","0" );
  2. function test($nombre,$nbfois){
  3. if ($nombre > "5" )
  4. {
  5. //si le nombre est sup à 5
  6. $nombre=$nombre-"5";
  7. $nbfois=$nbfois+"1";
  8. $tbl=array($nbfois=> '5');
  9. //print_r($tbl);
  10. test($nombre,$nbfois);
  11. }
  12. elseif ($nombre == "5" )
  13. {
  14. //si le nombre est egal à 5
  15. $tbl=array(1=> '5');
  16. }
  17. else
  18. {
  19. //si le nombre est inférieur à 5
  20. echo 'nombre inferieur à 5<br>';
  21. echo $nombre;
  22. }
  23. return $tbl;
  24. }
  25. print_r($tbl);


 
merci d'avance




Code :
  1. $tbl2=test("13","0" );
  2. function test($nombre,$nbfois){
  3. if ($nombre > "5" )
  4. {
  5. //si le nombre est sup à 5
  6. $nombre=$nombre-"5";
  7. $nbfois=$nbfois+"1";
  8. $tbl=array($nbfois=> '5');
  9. //print_r($tbl);
  10. test($nombre,$nbfois);
  11. }
  12. elseif ($nombre == "5" )
  13. {
  14. //si le nombre est egal à 5
  15. $tbl=array(1=> '5');
  16. }
  17. else
  18. {
  19. //si le nombre est inférieur à 5
  20. echo 'nombre inferieur à 5<br>';
  21. echo $nombre;
  22. }
  23. return $tbl;
  24. }
  25. print_r($tbl2);


Les variables sont locale à l'endroit où tu les utilisent.
Si c'est dans une fonction alors ça sera pas la même qu'en dehors des fonctions ni qu'a l'intérieur d'une autre fonction.
Tu fesais un return mais qu'en t'utilisais la fonction tu ne récupérais pas la valeur.
Teste avec les modifs que j'ai fait, t'auras un truc qui s'affiche (surement "array" ).
Pour afficher le contenu d'un tableau ou d'un enregistrement, il faut préciser une à une les cases du tableau.

n°238382
players
Posté le 01-11-2002 à 19:31:29  profilanswer
 

merci mais maintenant il y a un autre probleme, il n'a pas l'air de concerver le $tbl à chaque fois qu'il execute la fonction

n°238388
omega2
Posté le 01-11-2002 à 19:41:24  profilanswer
 

players a écrit a écrit :

merci mais maintenant il y a un autre probleme, il n'a pas l'air de concerver le $tbl à chaque fois qu'il execute la fonction



Ca, c'est normal, une fois finis l'exécution de la fonction.
Toute les variables de la fonction sont perdus.
Si tu l'utilises plusieurs fois dans un seul script, tu peux mettre la variable $tbl en global ( global $tbl; au début de la fonction) ce qui fait que cette variable continuera d'exister hors une fois sortis de la fonction (le global sert à dire que la variable dont on donne le nom est la même que la variable de même nom qui existe en dehors des fonctions).
 
Par contre, si tu veux que son contenu ne soit pas perdus entre deux appel du script il faudra que tu stockes toutes les valeurs en dehors du programmes (dans un fichier ou une base de donnée par exemple)

n°238391
players
Posté le 01-11-2002 à 19:54:34  profilanswer
 

merci, ça fonctionne, mais un autre probleme :D aparrement à chaque fois que je fais:

Code :
  1. $tbl=array($nbfois=> '5');

il me réinitialise les données du tableau deja inscrite
comment faire pour ajouter des données au tableau sans en perdre ?  
merci

n°238397
omega2
Posté le 01-11-2002 à 20:49:33  profilanswer
 

players a écrit a écrit :

merci, ça fonctionne, mais un autre probleme :D aparrement à chaque fois que je fais:

Code :
  1. $tbl=array($nbfois=> '5');

il me réinitialise les données du tableau deja inscrite
comment faire pour ajouter des données au tableau sans en perdre ?  
merci



essayes :

Code :
  1. $tbl[$nbfois]='5';


c'est plus de l'objet mais je suis surque ca marche comme ça.
Pour le fare en gardant le côté objet, je sais pas faire.

n°238400
players
Posté le 01-11-2002 à 20:56:08  profilanswer
 

merci beaucoup !!!!!
ça fonctionne trés bien !


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

  [PHP] Probleme avec les fonctions

 

Sujets relatifs
[PHP - Apache] Les variables ne passent pas...[ Prog C ] Probleme avec les includes multiples...
Problème Formulaire[XHTML, CSS] Problème validation CSS en XHTML
Problème de requete SQL avec moteur JET MS-Access[PHP] Décomposition d'un nombre par 3 et 4
problème d'ouverture de fichier [résolu]PHP?
[PHP] Extraire les deux premiers caractères d'une chaîne - RESOLUODBC / Linux / Php
Plus de sujets relatifs à : [PHP] Probleme avec les fonctions


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