PHP referans dizileri kullanarak

2 Cevap php

Neden aşağıdaki kod PHP "çökmesini" nedir?:

$normal_array       = array();
$array_of_arrayrefs = array( &$normal_array );

end( $array_of_arrayrefs )["one"] = 1; // choking on this one

Beklenen sonuç son kod satırı anahtarı ile normal_array $ ekler olduğunu "tek" 1 değerini sahip. Bu senaryonun gerçek bağlamında hep son dizi referans eklemek için sonuna () işlevini kullanın.

Bu arada PHP5.


Cevabınızı Konrad için teşekkürler.

Sonra ben biraz soru bükün. Nasıl bir dizi dizi-referanslar itin ve daha sonra bu diziden bunları kullanarak yapabilirsiniz as references?

Selamlar

/ R

2 Cevap

Bu sadece bir sözdizimi hatası varsa, çökmez:

end( $array_of_arrayrefs )["one"] = 1;

Ne yazık ki, PHP dizileri gibi işlev dönüş değerleri tedavi edemez. Açıkça değeri atamak zorundayız. end döndürülen değeri bir kopyasını yapar, çünkü ne yazık ki, bu burada çalışmıyor.

Yerine yeni bir yazı Oluşturuldu:

link text