IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] exporter un tableau php d'une fonction à un autre


Sujet :

Langage PHP

  1. #1
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Points : 267
    Points
    267
    Par défaut [Tableaux] exporter un tableau php d'une fonction à un autre
    Bonjour,

    Je débute en php et j'ai un problème que je n'arrive pas à résoudre depuis 3 jours...
    J'ai 2 fonctions ,et je voudrais utiliser le même tableau pour chacune d'entre elle , pour faire ensuite un tri.
    Le problème c'est que je n'arrive pas a exporter le tableau d'un fonction à l'autre ..

    Est-ce possible ?
    Pouvez-vous m'aider ?
    Merci.

    Mon script :
    <<<
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?
    $tab = array();
     
    function test($var1,$var2)
    {
    $GLOBALS ['$tab'];
    $tab[0] = $var1;
    $tab[1] = $var2;
    print "$tab[0]";
    print "$tab[1]";
    }
     
    $var1 = "abcd ";
    $var2 = "efgh ";
    test($var1,$var2);
     
    function test1($var3)
    {
    $tab[2] = $var3;
    print "$tab[0]";
    print "$tab[1]";
    print "$tab[2]";
    }
    $var3 = "ijkl";
    test1($var3);
    ?>
    >>>

    Le résultat :
    <<<
    abcd efgh ijkl
    >>>

  2. #2
    Membre régulier Avatar de pioule
    Profil pro
    Inscrit en
    Août 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 66
    Points : 97
    Points
    97
    Par défaut
    Et en déclarant le tableau en global dans ta 2ème fonction ?

  3. #3
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Points : 267
    Points
    267
    Par défaut
    Citation Envoyé par pioule
    Et en déclarant le tableau en global dans ta 2ème fonction ?
    j'ai le meme résultat :
    <<<
    abcd efgh ijkl
    >>>

  4. #4
    Membre régulier Avatar de pioule
    Profil pro
    Inscrit en
    Août 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 66
    Points : 97
    Points
    97
    Par défaut
    Et c'est quoi ton souci exactement ? Parce que le résultat que tu obtiens est normal il me semble ?

  5. #5
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Points : 267
    Points
    267
    Par défaut
    Citation Envoyé par pioule
    Et c'est quoi ton souci exactement ? Parce que le résultat que tu obtiens est normal il me semble ?
    Je voudrais pouvoir exporter le contenu de $tab présent dans la fonction test dans le fonction test1
    Mais ca marche pas

  6. #6
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    Déja...

    $GLOBALS ['$tab'];

    n'est pas correct il faut faire...

    global $tab;

    ensuite je pense que l'utilisation des références serait plus approprié... .. .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
    
    function test1(&$tab,$var1,$var2)
    {
          $tab[] = $var1;
          $tab[] = $var2;
    }
    
    function test2(&$tab,$var3)
    {
           $tab[] = $var3;
    }
    
    $tab = array();
    test1($tab,'abcd ','efgh ');
    test2($tab,'ijkl');
    
    echo'<pre>'.print_r($tab,true).'</pre>';
    
    ?>
    sinon avec les globales ça donne...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
    
    function test1($var1,$var2)
    {
          global $tab;
          $tab[] = $var1;
          $tab[] = $var2;
    }
    
    function test2(&$tab,$var3)
    {
            global $tab;
           $tab[] = $var3;
    }
    
    $tab = array();
    test1('abcd ','efgh ');
    test2('ijkl');
    
    echo'<pre>'.print_r($tab,true).'</pre>';
    
    ?>
    @ tchaOo°

  7. #7
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Points : 267
    Points
    267
    Par défaut
    Merci pour l'information , la 1ère solution fontionne.
    Mais avec les globales ça marche pas.

    Mais la 1ère solution me convient

    Merci.

    Citation Envoyé par kankrelune
    Déja...

    $GLOBALS ['$tab'];

    n'est pas correct il faut faire...

    global $tab;

    ensuite je pense que l'utilisation des références serait plus approprié... .. .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
    
    function test1(&$tab,$var1,$var2)
    {
          $tab[] = $var1;
          $tab[] = $var2;
    }
    
    function test2(&$tab,$var3)
    {
           $tab[] = $var3;
    }
    
    $tab = array();
    test1($tab,'abcd ','efgh ');
    test2($tab,'ijkl');
    
    echo'<pre>'.print_r($tab,true).'</pre>';
    
    ?>
    sinon avec les globales ça donne...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
    
    function test1($var1,$var2)
    {
          global $tab;
          $tab[] = $var1;
          $tab[] = $var2;
    }
    
    function test2(&$tab,$var3)
    {
            global $tab;
           $tab[] = $var3;
    }
    
    $tab = array();
    test1('abcd ','efgh ');
    test2('ijkl');
    
    echo'<pre>'.print_r($tab,true).'</pre>';
    
    ?>
    @ tchaOo°

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 57
    Points : 48
    Points
    48
    Par défaut
    Tu peux aussi t'essayer aux classes !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class gestionTableaux
    {
    <div style="margin-left:40px">public $tab;</div>
    <div style="margin-left:40px">public function fonction1($var1, $var2)</div><div style="margin-left:40px">{</div><div style="margin-left:40px"><div style="margin-left:40px">      $this->tab[] = $var1;
          $this->tab[] = $var2;</div></div>
    <div style="margin-left:40px">}</div>
    <div style="margin-left:40px">public function fonction2($var3)</div><div style="margin-left:40px">{</div>idem...
     
    <div style="margin-left:40px">}</div>}
     
    $gestion = new gestionTableaux();
    $gestion->fonction1($mavar1, $mavar2);
    $gestion->fonction2($mavar3);
    $montab = $gestion->tab;

  9. #9
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    Je ne suis pas sur que l'utilisation de la poo soit utile pour deux raisons...

    1. la poo c'est bien en abuser ça craind et dans ce cas là juste pour incrementer un tableau c'est abuser
    2. s'il arrive déja pas à faire deux fonctions mieu vaut éviter de lui parler de class, d'objet et tout le toutim




    @ tchaOo°

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    hello,

    Citation Envoyé par kankrelune
    Je ne suis pas sur que l'utilisation de la poo soit utile pour deux raisons...

    1. la poo c'est bien en abuser ça craind et dans ce cas là juste pour incrementer un tableau c'est abuser
    2. s'il arrive déja pas à faire deux fonctions mieu vaut éviter de lui parler de class, d'objet et tout le toutim




    @ tchaOo°

    Halomoto n'a pas tort, à partir du moment ou un a plusieurs fonctions qui travaillent sur une seule variable, la poo est la solution idéale. même si c'est pour faire des trucs tous cons.

    Accessoirement, tu n'as pas tort non plus dans ton 2

  11. #11
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    Je ne suis pas completement d'accord la poo apporte effectivement bien des avantages à la manipulation de données notament celui de manipuler la même source de données en interne cependant cela alourdis le code plus qu'autre chose si c'est pour des opérations plus que basiques et dans ce cas rester en procédural n'est, à mon avis, pas un mal... il faut savoir manier les deux dans les contextes qui leur sont adaptés... .. .

    @ tchaOo°

    ps : ça part en off topic là... le mieux si on veut continuer la discution serait de crer un nouveau topic "[débat]La POO c'est bien en abuser ça craind... ou pas ?" ... avis aux amateurs

  12. #12
    Membre habitué Avatar de Cyberbob002
    Inscrit en
    Mai 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 140
    Points : 146
    Points
    146
    Par défaut
    Tout dépend ou l'on place l'abus
    Moi dans ce cas je serais plutot partisant d'une classe car il risque d'y avoir autre chose que 2 petites fonctions isolées.
    Par contre, tout à fait d'accord pour ton "2" aussi

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 57
    Points : 48
    Points
    48
    Par défaut
    c'était une petite ouverture !

    pour pas qu'il reste ignorant

  14. #14
    Membre actif
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Points : 267
    Points
    267
    Par défaut
    merci beaucoup pour votre aide j'ai réussit a faire ce que je voulias faie avec ce code :
    <<<
    ?php

    function test1(&$tab,$var1,$var2)
    {
    $tab[] = $var1;
    $tab[] = $var2;
    }

    function test2(&$tab,$var3)
    {
    $tab[] = $var3;
    }

    $tab = array();
    test1($tab,'abcd ','efgh ');
    test2($tab,'ijkl');

    echo'<pre>'.print_r($tab,true).'</pre>';

    ?>
    >>>

    Mais je crois que je vais aussi essayé les classes !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passage d'un tableau php dans une fonction javascript
    Par mcdelay dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/09/2013, 17h25
  2. Passer en paramètre un tableau php dans une fonction javascript
    Par hartecel dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 17/07/2008, 15h17
  3. [PHP-JS] Charger un tableau PHP dans une fonction Javascript
    Par aityahia dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 06/05/2008, 17h05
  4. récupérer un tableau PHP dans une fonction javascript
    Par aztec dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/05/2007, 22h11
  5. Réponses: 4
    Dernier message: 05/10/2005, 18h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo