Henvisninger i PHP
I PHP kan man tildele værdien af en variabel til en anden:
<?php
$num1 = 1;
$num2 = $num1; // tildele
echo $num1; // 1
echo $num2; // 1
?>
Ved en sådan tildelelse bliver en kopi af værdien skrevet til den nye variabel. Det betyder, at variablerne ikke er forbundet med hinanden på nogen måde, og de kan ændres uafhængigt. Se eksemplet i koden:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1; // 1 - ændrede sig ikke
?>
Man kan dog gøre det sådan, at det ikke er værdien af variablen der kopieres, men en henvisning til den. I dette tilfælde vil ændring af værdien af den ene variabel også ændre værdien af den anden.
For at overføre værdien via henvisning, skal man sætte et &-tegn foran variabelnavnet:
<?php
$num1 = 1;
$num2 = &$num1; // overfører via henvisning
?>
Nu vil ændring af den første variabel også føre til ændring af den anden:
<?php
$num1 = 1;
$num2 = &$num1;
$num2 = 2;
echo $num1; // 2 - ændrede sig
?>
På samme måde, hvis vi ændrer den første variabel, så vil den anden også ændre sig:
<?php
$num1 = 1;
$num2 = &$num1;
$num1 = 2;
echo $num2; // 2
?>
Forklar, hvad resultatet af udførelsen af koden vil være:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1;
echo $num2;
?>
Forklar, hvad resultatet af udførelsen af koden vil være:
<?php
$num1 = 1;
$num2 = &$num1;
$num2++;
echo $num1;
echo $num2;
?>
Forklar, hvad resultatet af udførelsen af koden vil være:
<?php
$num1 = 1;
$num2 = $num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>
Forklar, hvad resultatet af udførelsen af koden vil være:
<?php
$num1 = 1;
$num2 = &$num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>