Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Objekte und Referenzen

PHP-Objekte und Referenzen

伊谢尔伦
伊谢尔伦Original
2016-11-23 13:49:15950Durchsuche

Ein wichtiger Punkt, der bei der Objektprogrammierung in PHP5 oft erwähnt wird, ist, dass „Objekte standardmäßig per Referenz übergeben werden“. Aber eigentlich ist das nicht ganz richtig. Hier einige Beispiele zur Veranschaulichung.

Die Referenz von PHP ist ein Alias, das heißt, zwei verschiedene Variablennamen verweisen auf denselben Inhalt. In PHP5 enthält eine Objektvariable nicht mehr den Wert des gesamten Objekts. Speichern Sie einfach eine Kennung, um auf den tatsächlichen Objektinhalt zuzugreifen. Wenn ein Objekt als Parameter übergeben, als Ergebnis zurückgegeben oder einer anderen Variablen zugewiesen wird, hat die andere Variable keine Referenzbeziehung zum Original, aber beide speichern eine Kopie desselben Bezeichners, der auf den tatsächlichen Inhalt von verweist das gleiche Objekt.

Beispiel #1 Referenzen und Objekte

<?php
    class A {
        public $foo = 1;
    }
    $a = new A;
    $b = $a; // $a ,$b都是同一个标识符的拷贝
    // ($a) = ($b) = <id>
    $b->foo = 2;
    echo $a->foo."\n";
    $c = new A;
    $d = &$c; // $c ,$d是引用
    // ($c,$d) = <id>
    $d->foo = 2;
    echo $c->foo."\n";
    $e = new A;
    function foo($obj) {
        // ($obj) = ($e) = <id>
        $obj->foo = 2;
    }
    foo($e);
    echo $e->foo."\n";
?>

Die obige Routine gibt Folgendes aus:

2
2
2


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