Vad referenser inte är

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

Vad referenser inte är

Som tidigare nämnts är referenser inte pekare. Det betyder att följande konstruktion inte kommer att göra det du förväntar dig:

<?php
function foo(&$var)
{
    $var =& $GLOBALS["baz"];
}
foo($bar); 
?>

Vad som händer är att `$var` i `foo` kommer att bindas till `$bar` i den anropande koden, men sedan återbindas till `$GLOBALS["baz"]`. Det finns inget sätt att binda `$bar` i den anropande omfattningen till något annat med hjälp av referensmekanismen, eftersom `$bar` inte är tillgänglig i funktionen `foo` (det representeras av `$var`, men `$var` har bara variabelinnehåll och inte namn-till-värde-bindning i den anropande symboltabellen). Du kan använda returreferenser för att referera till variabler som valts av funktionen.


Sidslut

Orginalhemsidan på Engelska : https://www.php.net/manual/en/language.references.arent.php
PHP
Språkreferens
Språkreferens#Referenser Förklarade


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/

Tack till Datorhjälp som har sponsrat Linux.se med webserver.