PHP-däki salgylar

PHP dilinde bir üýtgeýjiniň bahasyny beýleki bir üýtgeýjine berip bolýar:

php<?php
  $num1 = 1;
  $num2 = $num1; // berýäris
  
  echo $num1; // 1
  echo $num2; // 1
?>

Şeýle berilende täze üýtgeýjine birkinji üýtgeýjiniň bahasynyň göçürmesi ýazylýar. Bu ýagdaý üýtgeýjiler hiç hili bir-biri bilen baglanyşykly däldir we olary özbaşdak üýtgedip bolýar. Kodyň mysalyndan göz aýlaň:

php<?php
  $num1 = 1;
  $num2 = $num1;
  $num2 = 2;
  
  echo $num1; // 1 - üýtgedilmedi
?>

Emma, üýtgeýjiniň bahasynyň däl-de, ona bolan salgyny göçürip bolýar. Bu ýagdaýda bir üýtgeýjiniň bahasyny üýtgetmek, beýlekisiniň hem bahasyny üýtgeder.

Bahany salgyda ýollamak üçin, üýtgeýjiniň adyndan öň ampersand ( işaräni ) goýmaly:

php<?php
  $num1 = 1;
  $num2 = &$num1; // salgyda ýollaýarys
?>

Indi birinji üýtgeýjini üýtgetmek, ikinjisini hem üýtgeder:

php<?php
  $num1 = 1;
  $num2 = &$num1;
  $num2 = 2;
  
  echo $num1; // 2 - üýtgedildi
?>

Şuňa meňzeş, birinji üýtgeýjini üýtgetsek, ikinjisi hem üýtger:

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

Aýdyň, bu kody ýerine ýetirilende näme netije çykar:

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

Aýdyň, bu kody ýerine ýetirilende näme netije çykar:

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

Aýdyň, bu kody ýerine ýetirilende näme netije çykar:

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

Aýdyň, bu kody ýerine ýetirilende näme netije çykar:

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