Maison  >  Article  >  développement back-end  >  Comprendre profondément la différence entre le passage par valeur et le passage par référence en PHP

Comprendre profondément la différence entre le passage par valeur et le passage par référence en PHP

王林
王林original
2019-09-04 14:34:573032parcourir

Comprendre profondément la différence entre le passage par valeur et le passage par référence en PHP

La différence entre le passage de valeur PHP et le passage de référence. Quand passer par valeur et quand passer par référence

(1) Passer par valeur : toute modification apportée à la valeur dans la portée de la fonction sera ignorée en dehors de la fonction

(2) Passer par référence : Portée de la fonction Toute modification apportée à la valeur interne reflétera également ces modifications en dehors de la fonction

(3) Avantages et inconvénients :

A : Lors du passage par valeur, PHP doit copier la valeur. Surtout pour les chaînes et les objets volumineux, cela peut s'avérer une opération coûteuse.

B. Le passage par référence ne nécessite pas de copier la valeur, ce qui est très bon pour améliorer les performances.

<?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);

Tutoriel vidéo recommandé : Tutoriel vidéo PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn