Başvuru dönen PHP yeni operatör

3 Cevap php

Ben şu bir yeri vardır bazı eski bir PHP kodu ile çalışıyorum:

$someVar =& new SomeClass();

new operatörü hiç başvuruya göre değil, um, bir değer döndürür mü? (Bu tip tuhaf hissediyor. Aklımı kaybediyorum gibi hissediyorum.)

3 Cevap

PHP 4 OOP üzerinde eski kitaplar bir sürü öğretilen optimizasyon teknikleri bu tür biriydi.

Temelde, bellekte oluşturulan başlangıç ​​nesnesi tarafından başvuru örneğini döndürür sürece uygulama erişemiyor biridir. Aksi takdirde nesnenin bir kopyasını almak - sadece yakalamak orijinal bir sembolü olmadan var olmasıdır. Tür aptal.

Ama ya, oluşturma ve geçen ve PHP 4 referanslar nesne anıtsal bir felaket.

Thats PHP4 code. From the documentation: (now removed)

"new" does not return a reference by default, instead it returns a copy.

[1]: http://no.php.net/manual/en/language.oop.newref.php

Sorunu göstermek için basit bir kod örneğini içerir benim cevabım here hangi ayrıca bkz.