Panggilan PHP melalui Rujukan

WBOY
Lepaskan: 2024-08-29 12:47:50
asal
1065 orang telah melayarinya

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-olok

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Sintaks

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.';
}
Salin selepas log masuk

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);
Salin selepas log masuk

Bagaimanakah panggilan melalui rujukan berfungsi dalam PHP?

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 ';
Salin selepas log masuk

Apabila kami cuba mencetak $var di sini, ini akan memaparkan mesej di atas

echo $var;
// printing variable before calling function
Salin selepas log masuk

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.
Salin selepas log masuk

Dalam bahasa PHP yang disebutkan di bawah boleh digunakan sebagai panggilan dengan rujukan:

  • Pembolehubah – pembolehubah biasa.
  • Fungsi yang mengembalikan rujukan – fungsi yang jelas yang mengembalikan rujukan juga boleh dihantar sebagai parameter fungsi dalam panggilan melalui rujukan (lihat contoh E3).

Contoh panggilan melalui rujukan

Contoh yang berbeza dinyatakan di bawah:

Contoh #1

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;
?>
Salin selepas log masuk

Output:

Panggilan PHP melalui Rujukan

Contoh #2

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;
?>
Salin selepas log masuk

Output:

Panggilan PHP melalui Rujukan

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.

Contoh #3

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
?>
Salin selepas log masuk

Output:

Panggilan PHP melalui Rujukan

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.

Kesimpulan

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!

Label berkaitan:
php
sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan