PHP zaten bir şeyi değiştirene kadar yeni bir değer yaratmadığı, üzerine yazmayı kopyalayan bir şey yapar, bu nedenle referansları kullanarak çok fazla bellek kalmaz. Bunu yapmak, PHP'nin dahili olarak yaptığı, bellek kullanımını azaltmak ve işleri daha da kötüleştirmek için dahili olarak yaptığı bazı şeylerle karışabilir.
Buna, referansların genel olarak işleri biraz fazla büyülü kıldığı gerçeğini de ekleyin. Varsayılan ve dolayısıyla çoğu insanın beklediği şey, parola değeridir; Öldüğüm zaman $i
bir işleve, o işlev gizemli değiştirir umrumda zorunda müthiş şeyler zorlaştırmaktadır $i
tamamen başka bir şeye ve böylece her ihtimale karşı savunma kopyalarını alın. ( $i
Değerin bir nesne olup olmadığını zaten değiştirebilir , ancak bence yapmamalıydı.)
Temel olarak, ben sadece anlam ı bekliyoruz değişkenleri geçmek referans-ile- "dışarı" parametreleri için kullanışlı bulacağını geri almak işlevi yerine de pas, a la gelen preg_match
'ın &$matches
. İçeri giren nesneyi açıkça değiştiren işlevler için bile , sort
ya da gibi array_pop
, kendilerini biraz sinirli hissettiriyor ... ama buna bağlı kaldık.