Skicka via referens
Passera med referens
Du kan skicka en variabel med referens till en funktion så att funktionen kan modifiera variabeln. Syntaxen är som följer:
<?php
function foo(&$var)
{
$var++;
}
$a = 5;
foo($a);
// $a är 6 här
?>
Notera: Det finns inget referenstecken vid funktionsanropet – endast vid funktionsdefinitioner. Funktionsdefinitionerna ensamma är tillräckliga för att korrekt skicka argumentet med referens.
Följande saker kan skickas med referens:
- Variabler, dvs. `foo($a)`
- Referenser som returneras från funktioner, dvs.:
<?php
function foo(&$var)
{
$var++;
}
function &bar()
{
$a = 5;
return $a;
}
foo(bar());
?>
Läs mer om att returnera med referens.
Inga andra uttryck bör skickas med referens, eftersom resultatet är odefinierat. Till exempel är följande exempel på att skicka med referens ogiltiga:
<?php
function foo(&$var)
{
$var++;
}
function bar() // Notera att & saknas
{
$a = 5;
return $a;
}
foo(bar()); // Ger en varning
foo($a = 5); // Uttryck, inte variabel
foo(5); // Ger ett fatalt fel
class Foobar
{
}
foo(new Foobar()); // Ger en varning från och med PHP 7.0.7
// Varning: Endast variabler bör skickas med referens
?>
Sidslut
Orginalhemsidan på Engelska : https://www.php.net/manual/en/language.references.pass.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.