Skicka via referens: 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.references.pass.php <BR>PHP<BR>Språkreferens <BR>Språkreferens#Referenser Förklarade 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/ <BR><BR>Tack till [https://datorhjalp.se Datorhjälp] som har sponsr...')
 
Ingen redigeringssammanfattning
 
Rad 1: Rad 1:
=== Passera med referens ===
Du kan skicka en variabel med referens till en funktion så att funktionen kan modifiera variabeln. Syntaxen är som följer:
<pre>
<?php
function foo(&$var)
{
    $var++;
}
$a = 5;
foo($a);
// $a är 6 här
?>
</pre>
'''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.:
<pre>
<?php
function foo(&$var)
{
    $var++;
}
function &bar()
{
    $a = 5;
    return $a;
}
foo(bar());
?>
</pre>
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:
<pre>
<?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
?>
</pre>
= Sidslut =
= Sidslut =
Orginalhemsidan på Engelska : https://www.php.net/manual/en/language.references.pass.php
Orginalhemsidan på Engelska : https://www.php.net/manual/en/language.references.pass.php

Nuvarande version från 24 augusti 2024 kl. 12.05

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.