function get_arr() {
return array("one","two","three");
}
echo get_arr()[0];
Neden Yukarıdaki kod aşağıdaki hata atmak mı?
parse error: syntax error, unexpected '['
Bu sadece PHP'nin sözdizimi bir kısıtlamadır. Sen fonksiyonu bir dizi döndürür eğer dizin bir işlevin dönüş değeri olamaz. Lütfen fonksiyonu ile yanlış bir şey yok; yerine bu PHP homebrewed doğasını gösterir. Bir katamari topu gibi oldukça gelişigüzel bir şekilde zamanla özellikleri ve sözdizimi büyüdü. Bu baştan düşünülmüş ve bu sözdizimsel sınırlama bunun delilidir değildi.
Benzer şekilde, hatta bu basit yapı çalışmaz:
// Syntax error
echo array("one", "two", "three")[0];
Eğer bir değişken ve sonra dizin değişken sonucu atamak zorundadır geçici çözüm:
$array = get_arr();
echo $array[0];
İşin tuhafı onlar doğru nesneler ile aldım. get_obj()->prop
, sözdizimsel olarak geçerli olduğu ve beklendiği gibi çalışır. Rakam gidin.
Gerçekten de, istediğiniz tek değildir böyle bir özellik geliştirme: PHP Hata raporu #45906