Viited PHP-s

PHP-s saab ühe muutuja väärtuse omistada teisele:

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

Sellise omistamise korral kirjutatakse uusesse muutujasse esimese muutuja väärtuse koopia. See tähendab, et muutujad ei ole üksteisega kuidagi seotud ja neid saab sõltumatult muuta. Vaadake koodinäidet:

php<?php
  $num1 = 1;
  $num2 = $num1;
  $num2 = 2;
  
  echo $num1; // 1 - ei muutunud
?>

Võib aga teha nii, et kopeeritakse mitte muutuja väärtus, vaid viit sellele. Sel juhul ühe muutuja väärtuse muutmisel muutub ka teise muutuja väärtus.

Selleks, et edastada väärtust viidena, tuleb muutuja nime ette panna ampersand:

php<?php
  $num1 = 1;
  $num2 = &$num1; // edastame viidena
?>

Nüüd viimase muutuja muutmine toob kaasa ka teise muutuja muutumise:

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

Samamoodi, kui me muudame esimest muutujat, siis muutub ka teine:

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

Kirjelda, milline on koodi täitmise tulemus:

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

Kirjelda, milline on koodi täitmise tulemus:

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

Kirjelda, milline on koodi täitmise tulemus:

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

Kirjelda, milline on koodi täitmise tulemus:

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