Heim  >  Artikel  >  Backend-Entwicklung  >  Was sind PHP-Referenzvariablen? So implementieren Sie Referenzen in PHP

Was sind PHP-Referenzvariablen? So implementieren Sie Referenzen in PHP

不言
不言Original
2018-08-06 15:25:324685Durchsuche

In diesem Artikel erfahren Sie, was eine PHP-Referenzvariable ist. Wie man Referenzen in PHP implementiert, hat einen gewissen Referenzwert. Ich hoffe, dass es für Sie hilfreich ist.

Konzept:

Referenz: In PHP greifen verschiedene Variablennamen auf den Inhalt derselben Variablen zu, die zu einer Referenz wird und durch das &-Symbol dargestellt wird.

Zitat-Arbeitsprinzip:

(1) PHP-Speicherprinzip im Speicher:

<?php
    $a = range(1, 100);    $b = $a;
 ?>

Weil es in PHP einen COW-Mechanismus (Copy On Write) gibt, also

a; Der obige Code kann im Speicher wie folgt dargestellt werden:
Was sind PHP-Referenzvariablen? So implementieren Sie Referenzen in PHP

Nur ​​wenn

a wird zu diesem Zeitpunkt wieder geöffnet; dies ist der COW-Mechanismus von PHP. Das heißt:

<?php
    $a = range(1, 100);   
    $b = $a;    
    $a = range(1, 100);
?>

Obwohl sich das nicht ändert

a. Sie können die PHP-Funktion „memory_get_usage()“ verwenden, um die Speichernutzung zu überprüfen und dies nachzuweisen.

(2) Implementierungsprinzip von Referenzen in PHP

<?php
    $a = range(1, 100);    
    $b = &$a;
?>

Zu diesem Zeitpunkt befindet sich eine Referenz (&) im Speicher

a ist der ursprünglich zugewiesene Speicher und ändert sich zu diesem Zeitpunkt nicht,

Was sind PHP-Referenzvariablen? So implementieren Sie Referenzen in PHP

und dann, wenn der Wert von $a geändert wird Zeit:

<?php
    $a = range(1, 100);
    memory_get_usage();    
    $b = &$a;
    memory_get_usage();    
    $a = range(1,1000);
    memory_get_usage();?>

Was sind PHP-Referenzvariablen? So implementieren Sie Referenzen in PHPSie können sehen, dass ein Speicherplatz im Speicher nicht erneut geöffnet wird, da die Referenz diese Adresse dauerhaft
b, also die Werte von

a und $b ändern wird sich ändern. Sie können es auch mit der Funktion „memory_get_usage()“ anzeigen.

(3) ZVAL-Struktur (Variablencontainer) in PHP

Wir wissen, dass Variablen in PHP in der ZVAL-Struktur gespeichert werden und Referenzen auch angezeigt werden können, indem Sie sich die ZVAL-Struktur ansehen. Überprüfen Sie die Speicherstatus.

<?php
    $a = range(1, 100);
    xdebug_debug_zval(&#39;a&#39;);    
    $b = &$a;
?>

Wenn Sie die Funktion xdebug_debug_zval(); verwenden, müssen Sie die xdebug-Erweiterung von PHP installieren.

Empfohlene verwandte Artikel:

Was sind die Unterschiede zwischen PHP7 und PHP5? Vergleich zwischen PHP5 und PHP7

Erklärung des Prinzips der Zeitfunktion strtotime() in PHP

Das obige ist der detaillierte Inhalt vonWas sind PHP-Referenzvariablen? So implementieren Sie Referenzen in PHP. 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