Nesneler ve Gönderimler

Nesne yönelimli programlama ile ilgili olarak "öntanımlı olarak nesneler gönderimli aktarılır" diye bir kanı oluşmuştur, fakat bu tamamen doğru değildir. Bu bölümde bir örnek üzerinden bu genel kanı düzeltilmeye çalışılmıştır.

Bir PHP gönderimi, aynı değeri iki farklı değişkene yazmayı mümkün kılan bir takma addır. Bir nesne değişkeni değer olarak nesnenin kendisini içeremez. Bunun yerine, nesne erişimcilerin asıl nesneyi bulmasını sağlayacak bir nesne tanıtıcısı içerebilir. Bir nesne bağımsız değişkeni ile aktarılırken, döndürülürken veya başka bir değişkene atanırken bunlar takma ad değil, farklı değişkenlerdir: Aynı nesneyi gösteren tanıtıcının birer kopyasını içerirler.

Örnek 1 - Gönderimler ve Nesneler

<?php
class A {
public
$foo = 1;
}

$a = new A;
$b = $a; // $a ve $b aynı nesne tanıtıcısının kopyalarını içerir

Yukarıdaki örneğin çıktısı:

 2 2 2 
To Top