Henvisninger i PHP

I PHP kan man tildele verdien av en variabel til en annen:

php<?php
  $num1 = 1;
  $num2 = $num1; // tilordner
  
  echo $num1; // 1
  echo $num2; // 1
?>

Ved en slik tilordning blir en kopi av verdien skrevet inn i den nye variabelen. Dette betyr at variablene ikke er koblet til hverandre på noen måte og de kan endres uavhengig av hverandre. Se på kodeeksemplet:

php<?php
  $num1 = 1;
  $num2 = $num1;
  $num2 = 2;
  
  echo $num1; // 1 - endret seg ikke
?>

Man kan imidlertid gjøre slik at det ikke er verdien av variabelen som kopieres, men en henvisning til den. I dette tilfellet vil endring av verdien til én variabel også endre verdien til den andre.

For å sende verdien via henvisning, må man sette et &-tegn foran variabelnavnet:

php<?php
  $num1 = 1;
  $num2 = &$num1; // sender via henvisning
?>

Nå vil endring av den første variabelen også føre til endring av den andre:

php<?php
  $num1 = 1;
  $num2 = &$num1;
  $num2 = 2;
  
  echo $num1; // 2 - endret seg
?>

På samme måte, hvis vi endrer den første variabelen, vil også den andre endre seg:

php<?php
  $num1 = 1;
  $num2 = &$num1;
  $num1 = 2;
  
  echo $num2; // 2
?>
Задание 1

Fortell hva som blir resultatet av å kjøre koden:

php<?php
  $num1 = 1;
  $num2 = $num1;
  $num2 = 2;
  
  echo $num1;
  echo $num2;
?>
Задание 2

Fortell hva som blir resultatet av å kjøre koden:

php<?php
  $num1 = 1;
  $num2 = &$num1;
  $num2++;
  
  echo $num1;
  echo $num2;
?>
Задание 3

Fortell hva som blir resultatet av å kjøre koden:

php<?php
  $num1 = 1;
  $num2 = $num1;
  
  $num1++;
  $num2++;
  
  echo $num1;
  echo $num2;
?>
Задание 4

Fortell hva som blir resultatet av å kjøre koden:

php<?php
  $num1 = 1;
  $num2 = &$num1;
  
  $num1++;
  $num2++;
  
  echo $num1;
  echo $num2;
?>