Objekt och referenser
Objekt och referenser
En av de viktigaste punkterna i PHP OOP som ofta nämns är att "objekt skickas som referenser som standard". Detta är inte helt sant. Denna sektion klargör den allmänna uppfattningen med hjälp av några exempel.
En PHP-referens är en alias, vilket gör att två olika variabler kan skriva till samma värde. I PHP innehåller en objektvariabel inte själva objektet som värde. Den innehåller endast en objektidentifierare som gör det möjligt för objektaccessorer att hitta det faktiska objektet. När ett objekt skickas som argument, returneras eller tilldelas en annan variabel, är de olika variablerna inte alias: de innehåller en kopia av identifieraren, som pekar på samma objekt.
Exempel #1 Referenser och objekt
<?php class A { public $foo = 1; } $a = new A; $b = $a; // $a och $b är kopior av samma identifierare // ($a) = ($b) = <id> $b->foo = 2; echo $a->foo."\n"; $c = new A; $d = &$c; // $c och $d är referenser // ($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"; ?>
Exemplet ovan kommer att ge följande utdata:
2 2 2
Sidslut
Orginalhemsidan på Engelska : https://www.php.net/manual/en/language.oop5.references.php
PHP
Språkreferens
Språkreferens#Klasser_och_Objekt
Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/