Tableau (array) avec une portée globale ?

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. 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);
    }
    1. 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. 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. 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
        2. mercie pour le coup de main