php引用传递和值传递的区别
按值传递
函数范围内对值的任何改变在函数外部都会被忽略,值传递是把值拷贝一份,两个变量指向两个内存地址。
$a = 6; $b = $a; // 这是值传递,把 $a 的值拷贝给了 $b,在内存中 $a 和 $b 不在一个地址中,更改任意变量的值对对方无影响 $b = 7; echo $a; // 输出:6 function foo($b){ echo ++$b; } foo($b); // 输出:8 echo $b; // 输出:7 说明函数内的改变对函数外的值没有影响,因为,当 $b 传入函数内的时候是值传递, 会把值在内存中拷贝一份存入一个新的内存地址中
按引用传递
函数范围内对值的任何改变在函数外部也能反映出这些修改,引用传递是将一个变量的内存地址标识传给了内外一个变量,两个变量最终指向内存同一个地址。
$a = 6; $b = &$a; $b = 7; echo $a; // 输出:7 function foo(&$c){ echo ++$c; } foo($b); // 输出:8 echo $b; // 输出:8 说明函数内的改变对函数外的值有影响,因为,当 $b 传入函数内的时候是引用传递, 函数体内的$b和外部的$b实际上是指向同一个内存地址,所以一个改变,另外一个变量的值也会改变
function func(&$arr){ $arr['a'] = []; $arr = &$arr['a']; $arr['b'] = '333'; var_dump($arr); } $arr = [ 'a' => '111', 'b' => '222' ]; func($arr); var_dump($arr); /** # 第一个输出: array(1) { ["b"]=> string(3) "333" } # 第二个输出: array(2) { ["a"]=> array(1) { ["b"]=> string(3) "333" } ["b"]=> string(3) "222" } */
上面的示例明明还是引用传递进去的为啥会两个 $arr 打印出不一样的结果呢?
因为里面有一步操作 $arr = &$arr['a']; 这一步之后函数内的 $arr 的指向地址已经改变,指向了$arr['a'],所以两次打印的结果不一样。
注意:php 中对于对象默认引用传值一般引用传值用在需要在函数体内改变传入参数并且需要影响外部变量的时候使用,其他时候一般使用值传递。
推荐教程:PHP视频教程
Atas ialah kandungan terperinci php引用传递和值传递的区别. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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



Dalam PHP, anda boleh mencegah serangan CSRF dengan menggunakan token yang tidak dapat diramalkan. Kaedah khusus termasuk: 1. Menjana dan membenamkan token CSRF dalam bentuk; 2. Sahkan kesahihan token semasa memproses permintaan.

H5. Perbezaan utama antara program mini dan aplikasi ialah: Senibina Teknikal: H5 adalah berdasarkan teknologi web, dan program mini dan aplikasi adalah aplikasi bebas. Pengalaman dan Fungsi: H5 adalah ringan dan mudah digunakan, dengan fungsi terhad; Program mini adalah ringan dan mempunyai interaktif yang baik; Aplikasi berkuasa dan mempunyai pengalaman yang lancar. Keserasian: H5 adalah serasi, aplikasinya dan aplikasinya yang serasi dengan platform. Kos Pembangunan: H5 mempunyai kos pembangunan yang rendah, program mini sederhana, dan aplikasi tertinggi. Senario yang berkenaan: H5 sesuai untuk paparan maklumat, applet sesuai untuk aplikasi ringan, dan aplikasi sesuai untuk fungsi kompleks.

Eksport PDF yang dilindungi kata laluan di Photoshop: Buka fail imej. Klik "Fail" & gt; "Eksport" & gt; "Eksport sebagai PDF". Tetapkan pilihan "Keselamatan" dan masukkan kata laluan yang sama dua kali. Klik "Eksport" untuk menghasilkan fail PDF.

Jenis yang ketat dalam PHP didayakan dengan menambah mengisytiharkan (strict_types = 1); di bahagian atas fail. 1) Ia memaksa jenis pemeriksaan parameter fungsi dan pulangan nilai untuk mengelakkan penukaran jenis tersirat. 2) Menggunakan jenis yang ketat dapat meningkatkan kebolehpercayaan dan kebolehprediksi kod, mengurangkan pepijat, dan meningkatkan kebolehkerjaan dan kebolehbacaan.

Dalam PHP, kata kunci akhir digunakan untuk mencegah kelas daripada diwarisi dan kaedah ditimpa. 1) Apabila menandakan kelas sebagai muktamad, kelas tidak boleh diwarisi. 2) Apabila menandakan kaedah sebagai muktamad, kaedah itu tidak boleh ditulis semula oleh subkelas. Menggunakan kata kunci akhir memastikan kestabilan dan keselamatan kod anda.

Masa depan PHP akan dicapai dengan menyesuaikan diri dengan trend teknologi baru dan memperkenalkan ciri -ciri inovatif: 1) menyesuaikan diri dengan pengkomputeran awan, kontena dan seni bina microservice, menyokong Docker dan Kubernetes; 2) memperkenalkan pengkompil JIT dan jenis penghitungan untuk meningkatkan prestasi dan kecekapan pemprosesan data; 3) Berterusan mengoptimumkan prestasi dan mempromosikan amalan terbaik.

Terdapat perbezaan dalam kaedah promosi H5 dan program mini: ketergantungan platform: H5 bergantung kepada penyemak imbas, dan program mini bergantung kepada platform tertentu (seperti WeChat). Pengalaman Pengguna: Pengalaman H5 adalah miskin, dan program mini memberikan pengalaman yang lancar sama dengan aplikasi asli. Kaedah Komunikasi: H5 disebarkan melalui pautan, dan program mini dikongsi atau dicari melalui platform. Kaedah promosi H5: Perkongsian sosial, pemasaran e -mel, kod QR, SEO, iklan berbayar. Kaedah Promosi Program Mini: Promosi platform, perkongsian sosial, promosi luar talian, ASO, kerjasama dengan platform lain.

PHP dan Python masing -masing mempunyai kelebihan sendiri, dan pilihannya harus berdasarkan keperluan projek. 1.Php sesuai untuk pembangunan web, dengan sintaks mudah dan kecekapan pelaksanaan yang tinggi. 2. Python sesuai untuk sains data dan pembelajaran mesin, dengan sintaks ringkas dan perpustakaan yang kaya.
