Birisi PHP referanslar, garip bir fenomen, açıklayabilir?

0 Cevap php

PHP, 5.3 olmayan parçacığı güvenli pencere, aynı zamanda Linux üzerinde PHP 5.2.9 kanıtlanmıştır.

Örnek kod:

$test1 = array(
            array("val"=>"a"),
            array("val"=>"b"),
            array("val"=>"c")
          );


foreach($test1 as $key => $test)
{
    echo $test['val'] . "\n";
}
foreach($test1 as $key => &$test)
{
    echo $test['val'] . "\n";
}
foreach($test1 as $key => $test)
{
    echo $test['val'] . "\n";
}

çıktı:

a
b
c
a
b
c
a
b
b

Expected çıktı:

a
b
c
a
b
c
a
b
c

Peki ne olur? Benim ilk düşünce dizi işaretçi bir şekilde dahil olduğunu ... o reset hiçbir şey yapmadı değil. Sonra referans bir şekilde değerlerini değiştirerek düşündüm, ama hayır, ben &test ile çalıştırmak tekrar yerine beklenen çıkış, referans kullanarak ilk döngü sonra, ancak OLMADAN herhangi bir döngü ortaya sonuncusunun Referans Bu beni tamamen şaşkına bırakır .... son değeri değişecektir. Herkes bana bir açıklama verebilir misiniz?

0 Cevap