Saya menggunakan perpustakaan Facebook dengan kode ini di dalamnya:
class FacebookRestClient {
...
public function &users_hasAppPermission($ext_perm, $uid=null) {
return $this->call_method('facebook.users.hasAppPermission',
array('ext_perm' => $ext_perm, 'uid' => $uid));
}
...
}
Apa yang dimaksud dengan & di awal definisi fungsi, dan bagaimana cara menggunakan perpustakaan seperti ini (dalam contoh sederhana)
Ini mengembalikan referensi, seperti yang sudah disebutkan. Di PHP 4, objek diberi nilai, sama seperti nilai lainnya. Ini sangat tidak intuitif dan bertentangan dengan cara kerja sebagian besar bahasa lain.
Untuk mengatasi masalah, referensi digunakan untuk variabel yang menunjuk ke objek. Dalam PHP 5, referensi sangat jarang digunakan. Saya menduga ini adalah kode lama atau kode yang mencoba mempertahankan kompatibilitas dengan PHP 4.
sumber
Ini sering dikenal dalam PHP sebagai Pengembalian referensi atau Pengembalian dengan referensi .
Dokumentasi PHP tentang referensi Pengembalian
Sebuah referensi di PHP hanya nama lain ditugaskan untuk isi variabel. Referensi PHP tidak seperti pointer dalam pemrograman C , mereka bukan alamat memori yang sebenarnya, sehingga mereka tidak dapat digunakan untuk aritmatika pointer.
Konsep pengembalian referensi bisa sangat membingungkan terutama untuk pemula, jadi sebuah contoh akan sangat membantu.
Fungsi yang
getPopulationCount()
didefinisikan dengan pendahulunya&
, mengembalikan referensi ke konten atau nilai$populationCount
. Jadi, kenaikan$countryPopulation
, juga kenaikan$populationCount
.sumber