suche nach in der

Serialisierung von Objekten> <Späte statische Bindung
Last updated: Sat, 07 Jan 2012

view this page in

Objekte und Referenzen

Eine der häufigsten Aussagen zu objektorientierter Programmierung in PHP5 ist, dass "Objekte standardmäßig als Referenz übergeben werden". Dies ist nicht komplett wahr. Dieser Abschnitt berichtigt diese verbreitete Annahme anhand von Beispielen.

Eine PHP-Referenz ist ein Alias, der es ermöglicht, dass zwei unterschiedliche Variablen sich auf denselben Wert beziehen. Beginnend mit PHP 5 enthält eine Objektvariable nicht mehr das Objekt als Wert, sondern nur einen Objektbezeichner, der bei Objektzugriffen die Identifizierung des eigentlichen Objektes ermöglicht. Wenn ein Objekt als Argument oder Rückgabewert übergeben oder einer anderen Variable zugewiesen wird, so sind die verschiedenen Variablen keine Aliase, sie enthalten vielmehr Kopien des Bezeichners, die auf dasselbe Objekt verweisen.

Beispiel #1 Referenzen und Objekte

<?php
class {
    public 
$foo 1;
}  

$a = new A;
$b $a;     // $a und $b sind Kopien des gleichen Bezeichners
             // ($a) = ($b) = <id>
$b->foo 2;
echo 
$a->foo."\n";


$c = new A;
$d = &$c;    // $c und $d sind Referenzen
             // ($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";

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2
2
2


add a note add a note User Contributed Notes
Objekte und Referenzen
There are no user contributed notes for this page.

Serialisierung von Objekten> <Späte statische Bindung
Last updated: Sat, 07 Jan 2012