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