Rumah > Artikel > pembangunan bahagian belakang > Panggilan PHP melalui Rujukan
Panggilan melalui rujukan adalah mengenai menghantar rujukan pembolehubah sebagai parameter fungsi. Memandangkan PHP tidak secara langsung menyokong jenis mekanisme penunjuk, ia menyokong rujukan untuk menangani pelbagai operasi. Dalam bahasa PHP, nilai sebenar pembolehubah pegangan itu akan diubah suai jika nilai di dalam mana-mana fungsi diubah suai; ini tidak boleh dicapai dalam panggilan mengikut nilai. Simbol ampersand (&) boleh digunakan sebagai awalan sambil menghantar pembolehubah sebagai rujukan dalam panggilan menjadi rujukan. & simbol itu sendiri mewakili bahawa pembolehubah digunakan sebagai rujukan. Fungsi rujukan juga boleh dihantar sebagai parameter kepada fungsi lain. Dalam topik ini, kita akan belajar tentang Panggilan PHP melalui Rujukan.
IKLAN Kursus Popular dalam kategori ini PEMBANGUN PHP - Pengkhususan | 8 Siri Kursus | 3 Ujian Olok-olokMulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Tiada sintaks khas untuk menggunakan ini, tetapi ya, tanda & perlu digunakan semasa menghantar parameter kepada fungsi.
Pengisytiharan fungsi mungkin seperti di bawah:
function callByref(&$var) { $var.= 'inside the Call By Reference function.'; }
Tidak perlu apa-apa perkara istimewa semasa memanggil fungsi ini; yang sama boleh digunakan seperti fungsi biasa (panggilan mengikut nilai).
$var = 'Yes, I am'; callByref ($var);
Sebelum meneruskan kerja panggilan melalui rujukan, sepatutnya ada keperluan supaya boleh dipasang pada fungsi. Kemudian, dalam pengisytiharan fungsi yang ditentukan itu, kita boleh menggunakan tanda rujukan kepada pembolehubah parameter. Mari kita fahami perkara yang sama dengan contoh cepat.
function callByref(&$var) { $var.= 'Call By Reference function.'; } $var = 'Try to check the reference, I am inside the ';
Apabila kami cuba mencetak $var di sini, ini akan memaparkan mesej di atas
echo $var; // printing variable before calling function
Memanggil fungsi sekarang, memanggil fungsi ini akan mengubah suai nilai sebenar pembolehubah
$var seperti yang tertulis di dalam fungsi.
callByref ($var); echo $var; // this will be print the combined value of the string.
Dalam bahasa PHP yang disebutkan di bawah boleh digunakan sebagai panggilan dengan rujukan:
Contoh yang berbeza dinyatakan di bawah:
Atur cara mudah menggunakan panggilan dengan rujukan untuk menyemak sifat fungsi ini. Dalam hal ini, kita boleh menyemak nilai sebenar sedang diubah suai selepas menggunakan panggilan dengan merujuk dan mengubah suai pembolehubah dari dalam fungsi.
Kod:
<?php function callByref(&$var) { $var.= ' This will be added to the function.'; } $var = 'Value before calling the function.'; echo $var ."<br><br>"; // printing variable before callig function callByref ($var); echo $var; ?>
Output:
Kod contoh membezakan panggilan mengikut nilai dan panggilan melalui rujukan dalam PHP.
Kod
<?php // call by value function echo "<br>Swap functionality by call be value:<br>"; function SwapCallByValue($a, $b){ $c=$a; $a=$b; $b=$c; echo ""; echo "<br>Value of a and b after swap: "; echo $a . " ".$b; } $a = 10; $b = 20; echo "Value of a and b before swap: "; echo $a . " ".$b; SwapCallByValue($a, $b); // swap functionality by call be a reference echo "<br><br>Swap functionality by call by reference:<br>"; function SwapCallByRefernce(&$a,&$b) { $c=$a; $a=$b; $b=$c; } $a = 10; $b = 20; echo "Value of a and b before swap: "; echo $a . " ".$b; SwapCallByRefernce($a, $b); echo "<br>Value of a and b after swap: "; echo $a . " ".$b; ?>
Output:
Seperti yang dapat kita lihat dalam contoh di atas, panggilan demi pertukaran tidak akan berfungsi jika kita mencetak nilai a dan b di luar fungsi itu. Ini kerana panggilan mengikut nilai tidak mengubah salinan sebenar pembolehubah. Tetapi dalam panggilan melalui rujukan, kita dapat melihat kita mencetak nilai a dan b sejurus selepas memanggil fungsi itu, dan pertukaran berfungsi dengan baik. Ini semua tentang sementara kita akan berurusan dengan fungsi pertukaran dengan panggilan mengikut nilai dan panggilan melalui rujukan.
Kod:
<?php // this is the main function inside which the a funtion will be passed as a parameter function mainFunction(&$val) { $val++; echo $val; } // this function will be used as a parameter function &FunctionAsAParam() { $val = 15; return $val; } echo "A value of a after calling the function: "; $result = mainFunction(FunctionAsAParam()); // calling function, function as a reference parameter ?>
Output:
Dalam contoh di atas, kita dapat melihat bahawa fungsi rujukan FunctionAsAParam() digunakan sebagai parameter fungsi lain. Mengikut kod yang ditulis di dalam ini, ia memberikan nilai pembolehubah utama. Fungsi mainFunction() ialah fungsi utama kod di atas, sedang meningkatkan nilai nilai selepas menggunakan FunctionAsAParam() sebagai parameter fungsi rujukan. Terdapat pelbagai cara kita boleh menggunakan fungsi sebagai parameter rujukan.
Panggilan melalui rujukan menggunakan simbol & dalam parameter pada masa penciptaan, bukan pada panggilan fungsi ini. Dalam bahasa C atau C++, ia biasanya digunakan pada masa memanggil fungsi ini, tidak seperti PHP. Panggilan PHP melalui rujukan adalah mengenai mencipta atau memanggil fungsi yang mengubah suai salinan sebenar pembolehubah. Oleh itu, tiada tanda rujukan diperlukan pada masa memanggil sesuka hati memberikan ralat dalam PHP.
Atas ialah kandungan terperinci Panggilan PHP melalui Rujukan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!