2010-02-13 6 views
0

Im travaillant sur un nouveau projet minimal, mais j'ai une erreur, je ne sais pas pourquoi.PHP Foreach tableau comme une erreur dans la fonction (argument invalide pour foreach dans ...)

Normalement, j'utiliser les tableaux après je les ai créés avec $array = array();

mais dans ce cas je crée sans ce code, Heres un exemple de code complet, qui produit l'erreur:

<?php $i = array('demo', 'demo'); $array['demo/demodemo'] = $i; ?> 
<?php $i = array('demo', 'demo'); $array['demo/demodemo2'] = $i; ?> 

<?php 
foreach($array as $a) 
{ 
    echo $a[0] . '<br>'; 
} 

function echo_array_demo() { 
    foreach($array as $a) 
    { 
     echo $a[0] . '<br>'; 
    } 
} 

echo_array_demo(); 
?> 

I créer des éléments pour un tableau $array et si je l'appelle (foreach) sans fonction, cela fonctionne. Mais si j'appelle une fonction, l'erreur est émise ...

J'ai eu aucune idée pourquoi

Merci ...

Répondre

2

fonctions ont leur propre portée de variable . Les variables définies en dehors de la fonction ne sont pas automatiquement connues.

Vous pouvez "importer" des variables dans une fonction en utilisant le mot-clé global.

function echo_array_demo() { 

    global $array; 

    foreach($array as $a) 
    { 
     echo $a[0] . '<br>'; 
    } 
} 

Une autre façon de faire de la variable connue à la fonction est passing it as a reference:

function echo_array_demo(&$array) { 

    foreach($array as $a) 
    { 
     echo $a[0] . '<br>'; 
    } 
} 

echo_array_demo($array); 

Vérifiez la PHP manual on variable scope.

+0

sûr ... comment puis-je l'oublier: D Merci! – ahmet2106