Tableau (array) avec une portée globale ?

KaTSuo -  
 mano -
Bonjour,

J'ai un petit problème avec mon tableau (array).

Voilà un peu comment se présente mon code :

<?php
$tableau = array("1"=>"Valeur 1", 2=>"Valeur 2");

function ma_fonction() {
   print_r($tableau);
}


Seulement voilà, impossible de réutiliser le tableau nommé '$tableau' dans ma fonction et celà même si je déclare $tableau en global dans ma fonction...
Le problème est que je ne peux pas passer $tableau en paramètre dans ma fonction (j'utilise WinBinder pour ceux qui connaissent).

Quelqu'un a une idée ?
Merci d'avance
Configuration: Windows XP
Firefox 2.0.0.12

3 réponses

  1. moi
     
    Si tu veux une solution sans passer le tableau en paramètre :
    <?php
    $tableau = array("1"=>"Valeur 1", 2=>"Valeur 2");

    function ma_fonction() {
    global $tableau;
    print_r($tableau);
    }
    2
  2. yal
     
    Pas de réponse depuis le temps. Normal vu le ton, faut réfléchir avant d'agresser
    ceux qui s'intéressent à ton problème.
    Voila une solution si ça peut servir à d'autres...

    <?php
    function TableauGlobal(){
    $tableau = array();
    global $tableau;
    for($ct=0; $ct<10; $ct++){
    $tableau[]=$ct;
    }
    }
    TableauGlobal();
    echo '<pre>';print_r($tableau);echo '</pre>';
    ?>
    1
  3. kewa
     
    Bonjour,

    j'ai eu le même soucis, il suffit de passer ton tableau en argument.
    En fait quand tu appelles ta fonction tu mets le tableau dedans

    <?php
    $tableau = array("1"=>"Valeur 1", 2=>"Valeur 2");

    ma_fonction($tableau);

    function ma_fonction($tableau) {
    print_r($tableau);
    }

    ?>

    si tu veux seulement le lire ca marchera
    mais si tu veux le modifier dans ta fonction
    il faut rajouter un "&" dans la déclaration de ta fonction

    function ma_fonction(&$tableau) {
    ...
    -1
    1. moi
       
      Le problème est que je ne peux pas passer $tableau en paramètre dans ma fonction (j'utilise WinBinder pour ceux qui connaissent).

      faut lire avant de répondre
      0
    2. mano
       
      mercie pour le coup de main
      0