Fonksiyonunda bir hata olarak PHP Foreach dizi (içinde foreach için geçersiz argüman ...)

1 Cevap php

Im yeni asgari Projesi üzerinde çalışan, ama bir hata var, ben neden bilmiyorum.

I ilk $array = array(); ile bunları oluşturduktan sonra Normalde, ben diziler kullanın

ama bu durumda ben, bu kodu olmadan hatayı verir iste bir örnek tam kodu oluşturun:

<?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();
?>

Ben bir dizi $array için öğeleri oluşturmak ve ben bir fonksiyonu olmadan (foreach) diyoruz, eğer çalışır. I bir fonksiyon ararsanız, o hata geliyor ...

Ben hiçbir fikri neden var ettik

Teşekkür ederiz ...

1 Cevap

Fonksiyonlar kendi var variable scope. Fonksiyonun dışında tanımlanan değişkenler otomatik olarak bilinmemektedir.

Sen global anahtar sözcüğünü kullanarak bir işlev içine "import" değişkenleri olabilir.

function echo_array_demo() {

    global $array;

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

Işlevine bilinen değişken yapmanın diğer bir yolu olan passing it as a reference :

function echo_array_demo(&$array) {

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

echo_array_demo($array);

PHP manual on variable scope göz atın.