Objekt och referenser: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
(Skapade sidan med '= Sidslut = Orginalhemsidan på Engelska : https://www.php.net/manual/en/language.oop5.references.php <BR>PHP <BR>Språkreferens <BR>Språkreferens#Klasser_och_Objekt Kategori:Php<br> <BR> <hr> 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/')
 
Ingen redigeringssammanfattning
 
Rad 1: Rad 1:
== 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 ===
<pre>
<?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";
?>
</pre>
Exemplet ovan kommer att ge följande utdata:
<pre>
2
2
2
</pre>
= Sidslut =
= Sidslut =
Orginalhemsidan på Engelska : https://www.php.net/manual/en/language.oop5.references.php
Orginalhemsidan på Engelska : https://www.php.net/manual/en/language.oop5.references.php

Nuvarande version från 19 augusti 2024 kl. 05.42

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/