php函数间的参数传递(值传递/引用传递)_PHP
php:函数间的参数传递
1.值传递
复制代码 代码如下:
function exam($var1){
$var1++;
echo "In Exam:" . $var1 . "
";
}
$var1 = 1;
echo $var1 . "
";
exam($var1);
echo $var1 . "
";
?>
-------------------------------------------------------------------------------
输出结果:
1
In Exam: 2
1
-------------------------------------------------------------------------------
2.引用传递
复制代码 代码如下:
function exam( &$var1){
$var1++;
echo "In Exam:" . $var1 . "
";
}
$var1 = 1;
echo $var1 . "
";
exam($var1);
echo $var1 . "
";
?>
-------------------------------------------------------------------------------
输出结果:
1
In Exam: 2
2
-------------------------------------------------------------------------------
3.可选参数
复制代码 代码如下:
function values($price, $tax=""){
$price += $prive * $tax;
echo "Total Price:" . $price . "
";
}
values(100, 0.25);
values(100);
输出结果:
Total Price: 125
Total Price: 100
-------------------------------------------------------------------------------
4.如果传入的是一个对象,可以更改该对象的值
(实际上变量$obj记录的是这个对象的句柄,将$obj作为参数传入,完全可以对原对象进行操作。)
复制代码 代码如下:
class Obj{
public $name;
public $age;
public $gander;
public function __construct($name, $age, $gander){
$this->name = $name;
$this->age = $age;
$this->gander = $gander;
}
public function show_info(){
echo $this->name . " " . $this->age . " " . $this->gander . "
";
}
}
function grow($obj){
$obj->age++;
}
function test(){
$obj = new Obj("Mr. zhan", "12", "male");
$obj->show_info();
grow($obj);
$obj->show_info();
grow($obj);
$obj->show_info();
}
test();
?>
-------------------------------------------------------------------------------
输出结果:
Mr. zhan 12 male
Mr. zhan 13 male
Mr. zhan 14 male

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Untuk mengoptimumkan prestasi lulus parameter fungsi Go, amalan terbaik termasuk: menggunakan jenis nilai untuk mengelakkan penyalinan jenis nilai kecil menggunakan penunjuk untuk menghantar jenis nilai yang besar (struktur menggunakan jenis nilai untuk menghantar hirisan; Dalam amalan, apabila menghantar rentetan JSON yang besar, menghantar penunjuk parameter data boleh meningkatkan prestasi penyahserikatan dengan ketara.

Perbezaan utama antara fungsi PHP dan Flutter ialah pengisytiharan, sintaks dan jenis pulangan. Fungsi PHP menggunakan penukaran jenis pulangan tersirat, manakala fungsi Flutter secara eksplisit menentukan jenis pulangan boleh menentukan parameter pilihan melalui ?, manakala fungsi Flutter menggunakan diperlukan dan [] untuk menentukan parameter yang diperlukan dan pilihan menggunakan = untuk lulus Parameter penamaan; Fungsi flutter menggunakan {} untuk menentukan parameter yang dinamakan.

Prestasi fungsi PHP yang berbeza adalah penting untuk kecekapan aplikasi. Fungsi dengan prestasi yang lebih baik termasuk gema dan cetakan, manakala fungsi seperti str_replace, array_merge dan file_get_contents mempunyai prestasi yang lebih perlahan. Sebagai contoh, fungsi str_replace digunakan untuk menggantikan rentetan dan mempunyai prestasi sederhana, manakala fungsi sprintf digunakan untuk memformat rentetan. Analisis prestasi menunjukkan bahawa ia hanya mengambil masa 0.05 milisaat untuk melaksanakan satu contoh, membuktikan bahawa fungsi berfungsi dengan baik. Oleh itu, menggunakan fungsi dengan bijak boleh membawa kepada aplikasi yang lebih pantas dan cekap.

Fungsi pemprosesan imej PHP ialah satu set fungsi yang khusus digunakan untuk memproses dan mengedit imej Ia menyediakan pembangun dengan fungsi pemprosesan imej yang kaya. Melalui fungsi ini, pembangun boleh melaksanakan operasi seperti pemangkasan, penskalaan, putaran dan penambahan tera air pada imej untuk memenuhi keperluan pemprosesan imej yang berbeza. Pertama, saya akan memperkenalkan cara menggunakan fungsi pemprosesan imej PHP untuk mencapai fungsi pemangkasan imej. PHP menyediakan fungsi imagecrop(), yang boleh digunakan untuk memangkas imej. Dengan melepasi koordinat dan saiz kawasan pemangkasan, kita boleh memangkas imej

Fungsi PHP mempunyai persamaan dengan fungsi dalam bahasa lain, tetapi juga mempunyai beberapa ciri unik. Secara sintaksis, fungsi PHP diisytiharkan dengan fungsi, JavaScript diisytiharkan dengan fungsi, dan Python diisytiharkan dengan def. Dari segi parameter dan nilai pulangan, fungsi PHP menerima parameter dan mengembalikan nilai JavaScript dan Python juga mempunyai fungsi yang serupa, tetapi sintaksnya berbeza. Dari segi skop, fungsi dalam PHP, JavaScript dan Python semuanya mempunyai skop global atau tempatan Fungsi global boleh diakses dari mana-mana sahaja, dan fungsi tempatan hanya boleh diakses dalam skop pengisytiharan mereka.

Dalam persekitaran berbilang benang, kaedah lulus parameter fungsi adalah berbeza, dan perbezaan prestasi adalah ketara: lulus mengikut nilai: menyalin nilai parameter, selamat, tetapi objek besar mahal. Lulus dengan rujukan: Lulus melalui rujukan adalah cekap, tetapi pengubahsuaian fungsi akan menjejaskan pemanggil. Lulus dengan rujukan tetap: Lulus dengan rujukan tetap, selamat, tetapi menyekat operasi fungsi pada parameter. Melewati penuding: Melepasi penuding adalah fleksibel, tetapi pengurusan penuding adalah kompleks dan penuding berjuntai atau kebocoran memori mungkin berlaku. Dalam penjumlahan selari, lulus melalui rujukan adalah lebih cekap daripada lulus dengan nilai, dan lulus melalui penunjuk adalah yang paling fleksibel, tetapi pengurusan adalah rumit.

Dalam bahasa Go, terdapat dua cara utama untuk menghantar parameter fungsi: penghantaran nilai: menghantar salinan pembolehubah tidak akan menjejaskan pembolehubah asal dalam kod panggilan. Lulus penunjuk: Melepasi alamat pembolehubah membolehkan fungsi mengubah suai terus pembolehubah asal dalam kod panggilan.

Penunjuk fungsi digunakan sebagai mekanisme lulus parameter dalam C++: penuding fungsi diluluskan sebagai penuding malar, salinan dibuat semasa proses lulus, parameter formal fungsi yang diterima menghala ke salinan, dan salinan yang dinyahrujuk boleh memanggil asas. fungsi.
