Rumah  >  Artikel  >  pembangunan bahagian belakang  >  深入理解php中值传递和引用传递的区别

深入理解php中值传递和引用传递的区别

王林
王林asal
2019-09-04 14:34:573107semak imbas

深入理解php中值传递和引用传递的区别

PHP值传递和引用传递的区别。什么时候传值什么时候传引用

(1)按值传递:函数范围内对值的任何改变在函数外部都会被忽略

(2)按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改

(3)优缺点:

A:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。

B.按引用传递则不需要复制值,对于性能提高很有好处。

<?php
    header(&#39;content-type:text/html;charset=utf-8&#39;);

    //探讨一下 array , null, 对象 ,资源的默认传递方式
    // 结论 (1) array 默认是值传递,通过加 & 可以引用传递
    //      (2)  null 默认是值传递,通过加 & 可以引用传递
    //      (3) 资源  是值传递.通过加 & 可以引用传递
    //        (4) 对象默认也是值传递,但是对象值传递是对象标识符    
    $hero = array(&#39;no1&#39;=>&#39;蝙蝠侠&#39;, &#39;no2&#39;=>&#39;超人&#39;);

    $hero2 = &$hero;
    $hero2[&#39;no1&#39;] = &#39;蜘蛛侠&#39;;
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    var_dump($hero);
    var_dump($hero2);


    $a = null;
    $b = &$a;
    $b = &#39;abc&#39;;

    var_dump($a, $b);

推荐视频教程:PHP视频教程

Atas ialah kandungan terperinci 深入理解php中值传递和引用传递的区别. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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
Artikel sebelumnya:thinkphp5中怎样配置数据库?Artikel seterusnya:php怎么全局捕获异常