PHP reference เป็น alias ที่อนุญาตให้ตัวแปรสองตัวเขียนค่าเดียวกันได้ ใน PHP 5 ตัวแปรอ็อบเจกต์ไม่ได้มีอ็อบเจกต์เองเป็นค่า มันเก็บ object identifier ที่อนุญาตให้ object accessors หาอ็อบเจกต์จริงได้
เมื่อส่งอ็อบเจกต์เป็นอาร์กิวเมนต์ คืนค่า หรือกำหนดให้ตัวแปรอื่น ตัวแปรเหล่านี้ไม่ใช่ aliases พวกเขามี copy ของ identifier ที่ชี้ไปยังอ็อบเจกต์เดียวกัน
ตัวอย่าง
$my_var = new class_name; echo $my_var->get_class_name(5)->value; $my_var->test(); echo $my_var->get_class_name(5)->value;
ผลลัพธ์
จะได้ผลลัพธ์ดังนี้:
class_name #5
นี่ไม่ใช่ "pass by reference" จริงๆ แล้วเป็น "assignment by reference" ใน PHP 5 assignment by reference เป็นพฤติกรรมเริ่มต้นกับอ็อบเจกต์