PHP &$string - Apa artinya ini? [duplikat]

Saya sudah googling tetapi saya tidak dapat menemukan apa pun.

$x->func(&$string, $str1=false, $str2=false);

apa fungsinya & sebelum $string &$string?


person Mickey    schedule 06.12.2013    source sumber
comment
Siapa pun yang menandai ini sebagai duplikat: saat ini SALAH ... pertanyaan ini BUKAN duplikat, karena kombinasi simbol &$ TIDAK ditampilkan dalam apa yang disebut pertanyaan referensi. Harap lebih berhati-hati dan mempertimbangkan dalam menandai pertanyaan sebagai duplikat.   -  person mike rodent    schedule 28.03.2015
comment
Mike benar. Belum dijawab, setidaknya tidak di halaman yang ditunjukkan. Balasan seperti ini tidak bertanggung jawab. Produk-produk tersebut harus dilarang dan pembuatnya harus diturunkan peringkatnya.   -  person Apostolos    schedule 09.04.2017


Jawaban (5)


Anda menetapkan nilai array itu dengan referensi.

meneruskan argumen melalui referensi (&$) dan dengan $ adalah ketika Anda meneruskan argumen melalui referensi Anda mengerjakan variabel asli, artinya jika Anda mengubahnya di dalam fungsi Anda, itu akan diubah di luarnya juga, jika Anda meneruskan argumen sebagai salin, fungsi membuat instance salinan dari variabel ini, dan mengerjakan salinan ini, jadi jika Anda mengubahnya di dalam fungsi, itu tidak akan diubah di luarnya

Referensi: http://www.php.net/manual/en/lingual.references.pass.php

person Krish R    schedule 06.12.2013
comment
penjelasan sederhana, terima kasih - person Mickey; 06.12.2013
comment
Tautan dokumentasi Anda mengarah ke topik yang terkait, namun berbeda. - person Rob Baillie; 06.12.2013
comment
@Rob Baillie, Terima kasih, saya telah memperbarui tautannya. - person Krish R; 06.12.2013

& menyatakan bahwa referensi ke variabel harus diteruskan ke fungsi, bukan tiruannya.

Dalam situasi ini, jika fungsi mengubah nilai parameter, maka nilai variabel yang diteruskan juga akan berubah.

Namun, Anda harus mengingat hal berikut untuk PHP 5:

  • Referensi waktu panggilan (seperti yang Anda tunjukkan dalam contoh Anda) tidak digunakan lagi mulai 5.3
  • Melewati referensi ketika ditentukan pada tanda tangan fungsi tidak digunakan lagi, tetapi tidak lagi diperlukan untuk objek karena semua objek kini diteruskan melalui referensi.

Anda dapat menemukan informasi lebih lanjut di sini: http://www.php.net/manual/en/lingual.references.pass.php

Dan ada banyak informasi di sini: Referensi — Apa artinya arti simbol ini di PHP?

Contoh perilaku string:

function changeString( &$sTest1, $sTest2, $sTest3 ) {
    $sTest1 = 'changed';
    $sTest2 = 'changed';
    $sTest3 = 'changed';
}

$sOuterTest1 = 'original';
$sOuterTest2 = 'original';
$sOuterTest3 = 'original';

changeString( $sOuterTest1, $sOuterTest2, &$sOuterTest3 );

echo( "sOuterTest1 is $sOuterTest1\r\n" );
echo( "sOuterTest2 is $sOuterTest2\r\n" );
echo( "sOuterTest3 is $sOuterTest3\r\n" );

Keluaran:

C:\test>php test.php

sOuterTest1 is changed
sOuterTest2 is original
sOuterTest3 is changed
person Rob Baillie    schedule 06.12.2013

& artinya lewat dengan referensi:

Referensi memungkinkan dua variabel merujuk ke konten yang sama. Dengan kata lain, suatu variabel menunjuk pada kontennya (bukan menjadi konten tersebut). Melewati referensi memungkinkan dua variabel menunjuk ke konten yang sama dengan nama berbeda. Tanda ampersand (&) ditempatkan sebelum variabel yang akan direferensikan.

person LightningBoltϟ    schedule 06.12.2013

Artinya Anda meneruskan referensi ke string ke dalam metode. Semua perubahan yang dilakukan pada string di dalam metode akan tercermin juga di luar metode tersebut dalam kode Anda.

Lihat juga: operator =& PHP

Contoh:

$string = "test";
$x->func(&$string); // inside: $string = "test2";
echo $string; // test2

tanpa operator &, Anda masih akan melihat "test" di variabel Anda.

person eX0du5    schedule 06.12.2013
comment
lucu Anda menyebutkan itu =&, saya baru melihat dan mempelajarinya malam ini, saya telah membuat kode selama bertahun-tahun dan belum pernah menggunakannya sebelumnya. - person Mickey; 06.12.2013
comment
Saya juga telah membuat kode php selama bertahun-tahun tetapi jarang menggunakannya. Seringkali Anda melewati suatu benda dan tidak memerlukannya. - person eX0du5; 06.12.2013

& – Lewati dengan Referensi. Itu diteruskan dengan referensi, bukan nilai string.

person user3069029    schedule 06.12.2013