ბმულები PHP-ში
PHP-ში შესაძლებელია ერთი ცვლადის მნიშვნელობის მეორეში მინიჭება:
<?php
$num1 = 1;
$num2 = $num1; // ვუტოლებთ
echo $num1; // 1
echo $num2; // 1
?>
ასეთი მინიჭების დროს ახალ ცვლადში იწერება პირველი ცვლადის მნიშვნელობის ასლი. ეს ნიშნავს, რომ ცვლადები ერთმანეთთან არანაირად არ არის დაკავშირებული და მათი დამოუკიდებლად შეცვლა შესაძლებელია. ნახეთ კოდის მაგალითზე:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1; // 1 - არ შეცვლილა
?>
თუმცა, შესაძლებელია ისეთი შექმნა, რომ ცვლადის მნიშვნელობა არ კოპირებულიყო, არამედ მისი ბმული. ამ შემთხვევაში ერთი ცვლადის მნიშვნელობის შეცვლისას, შეიცვლება მეორეს მნიშვნელობაც.
იმისთვის, რომ მნიშვნელობა მიეთითოს ბმულით, საჭიროა ცვლადის სახელის წინ მოთავსდეს ამპერსანდი:
<?php
$num1 = 1;
$num2 = &$num1; // ბმულით გადაცემა
?>
ახლა პირველი ცვლადის შეცვლა გამოიწვევს მეორეს შეცვლასაც:
<?php
$num1 = 1;
$num2 = &$num1;
$num2 = 2;
echo $num1; // 2 - შეიცვალა
?>
ანალოგიურად, თუ ჩვენ შევცვლით პირველ ცვლადს, შეიცვლება მეორეც:
<?php
$num1 = 1;
$num2 = &$num1;
$num1 = 2;
echo $num2; // 2
?>
გითხარით, რა იქნება კოდის შესრულების შედეგი:
<?php
$num1 = 1;
$num2 = $num1;
$num2 = 2;
echo $num1;
echo $num2;
?>
გითხარით, რა იქნება კოდის შესრულების შედეგი:
<?php
$num1 = 1;
$num2 = &$num1;
$num2++;
echo $num1;
echo $num2;
?>
გითხარით, რა იქნება კოდის შესრულების შედეგი:
<?php
$num1 = 1;
$num2 = $num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>
გითხარით, რა იქნება კოდის შესრულების შედეგი:
<?php
$num1 = 1;
$num2 = &$num1;
$num1++;
$num2++;
echo $num1;
echo $num2;
?>