Heim  >  Artikel  >  Backend-Entwicklung  >  Verstehen Sie den Unterschied zwischen der Wertübergabe und der Referenzübergabe in PHP genau

Verstehen Sie den Unterschied zwischen der Wertübergabe und der Referenzübergabe in PHP genau

王林
王林Original
2019-09-04 14:34:573070Durchsuche

Verstehen Sie den Unterschied zwischen der Wertübergabe und der Referenzübergabe in PHP genau

Der Unterschied zwischen PHP-Wertübergabe und Referenzübergabe. Wann soll ein Wert und wann eine Referenz übergeben werden

(1) Wert übergeben: Alle Änderungen am Wert innerhalb des Funktionsumfangs werden außerhalb der Funktion ignoriert

(2) Übergeben Referenz: Funktionsumfang Alle Änderungen am internen Wert spiegeln diese Änderungen auch außerhalb der Funktion wider

(3) Vor- und Nachteile:

A: Bei der Wertübergabe muss PHP den Wert kopieren. Insbesondere bei großen Strings und Objekten kann dies ein kostspieliger Vorgang sein.

B. Die Übergabe als Referenz erfordert kein Kopieren des Werts, was für die Leistungsverbesserung sehr gut ist.

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

Empfohlenes Video-Tutorial: PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonVerstehen Sie den Unterschied zwischen der Wertübergabe und der Referenzübergabe in PHP genau. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn