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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    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 éclairé 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
    Par défaut
    Et en déclarant le tableau en global dans ta 2ème fonction ?

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    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 éclairé 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
    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 éclairé
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    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 émérite
    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
    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 éclairé
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    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 averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 57
    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 émérite
    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
    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 émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    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

+ 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