Apa yang =&
dilakukan operator penugasan (sama dengan ampersand) di PHP?
Apakah sudah usang?
php
operators
assignment-operator
Kyle J. Dye
sumber
sumber
Jawaban:
Ini tidak usang dan sepertinya tidak akan terjadi. Ini adalah cara standar untuk, misalnya, membuat bagian dari satu larik atau objek yang mencerminkan perubahan yang dibuat ke larik lain, daripada menyalin data yang ada.
Ini disebut penugasan dengan referensi , yang, mengutip manual, "berarti bahwa kedua variabel akhirnya menunjuk pada data yang sama, dan tidak ada yang disalin di mana pun" .
Satu-satunya hal yang tidak digunakan lagi
=&
adalah "menetapkan hasilnew
berdasarkan referensi" di PHP 5 , yang mungkin menjadi sumber kebingungan.new
secara otomatis ditetapkan dengan referensi, begitu&
juga redundan / deprecated in$o = &new C;
, tapi tidak in$o = &$c;
.Karena sulit untuk mencari, perhatikan bahwa
=&
( sama dengan ampersand ) adalah sama dengan= &
( sama dengan spasi ampersand ) dan sering ditulis sedemikian rupa sehingga berjalan ke variabel lain seperti$x = &$y['z'];
atau$x = &$someVar
( nama variabel tanda ampersand dolar ). Contoh yang disederhanakan dari dokumen:Berikut tautan praktis ke bagian terperinci tentang Tetapkan Dengan Referensi di manual PHP . Halaman itu adalah bagian dari seri referensi - ada baiknya meluangkan waktu sebentar untuk membaca keseluruhan seri.
sumber
Ini dua operator yang berbeda.
=
adalah tugas seperti yang mungkin Anda ketahui. Dan&
artinya variabel harus diakses dengan referensi daripada dengan nilai.sumber
juga memiliki efek membuat
$y['z']
jika tidak ada, dan menyetelnya kenull
.Ini mencegah pesan kesalahan yang mungkin ingin Anda baca. Saya belum menemukan dokumentasi tentang ini; mungkin baru di 5.3, sejauh yang saya tahu.
sumber