Saya sudah googling tetapi saya tidak dapat menemukan apa pun.
$x->func(&$string, $str1=false, $str2=false);
apa fungsinya &
sebelum $string
&$string
?
Saya sudah googling tetapi saya tidak dapat menemukan apa pun.
$x->func(&$string, $str1=false, $str2=false);
apa fungsinya &
sebelum $string
&$string
?
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
& 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:
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
&
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.
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.
& – Lewati dengan Referensi. Itu diteruskan dengan referensi, bukan nilai string.