Gönderimle döndürme, gönderimin bağlayacağı değişkeni hedefleyen bir işlev kullanmak istediğiniz takdirde yararlıdır. Gönderimle döndürmeyi başarımı arttırmak amacıyla kullanmayın. Motor, bunu kendine göre en iyileyecek yeteneğe sahiptir. Sadece geçerli bir teknik sebebiniz olduğunda gönderimle döndürme yapın! Gönderimle döndürmek için şu söz dizimi kullanılır:
<?php
class sınıf {
public $değer = 42;
public function &değeriBağla() {
return $this->değer;
}
}
$obj = new sınıf;
$değerim = &$obj->değeriBağla(); // $değerim, $obj->değer için bir gönderimdir
echo $değerim; // 42 basar
$obj->değer = 2;
echo $değerim; // 2 basar
?>
Bilginize: Değiştirge aktarmanın tersine, burada her iki taraftada (çağıran ve çağrılan) & kullanımı zorunludur. Çağıran tarafta $değerim değişkenine yapılanın bir atama değil gönderim bağlantısı olduğunu, çağrılan tarafta ise yapılanın sıradan bir değer kopyalama değil bir gönderimle döndürme olduğunu belirtmektedir.
Bilginize: return ($this->değer); söz dizimi ile bir işlevden bir gönderim döndürmek isterseniz bir değişkeni değil de bir ifadenin sonucunu döndürmeye çalışmış olacağınızdan bu istediğinizi yapmayacaktır. Bir işlevden gönderimle sadece değişkenleri döndürebilirsiniz, başka bir şey döndüremezsiniz. PHP 4.4.0 ve PHP 5.1.0'dan beri gönderimle döndürme söz dizimini kullanan bir işlevden bir devingen ifadenin veya bir new işlecinin sonucunu döndürmeye çalışmak
E_NOTICE
seviyesinden bir hata oluşturmaktadır.