পরিচিতি
C-স্টাইল ইনক্রিমেন্ট এবং ডিক্রিমেন্ট অপারেটর ++ এবং -- PHP-তে ডিফাইন করা রয়েছে। নাম অনুযায়ী, ++ ইনক্রিমেন্ট অপারেটর অপারেন্ড ভেরিয়েবলের মান ১ বাড়ায়। -- ডিক্রিমেন্ট অপারেটর মান ১ কমায়। দুটোই যুনারি (unary) অপারেটর কারণ এদের শুধু এক অপারেন্ড প্রয়োজন। এগুলো প্রিফিক্স বা পোস্টফিক্স রূপে ব্যবহার করা যায়, একটি এক্সপ্রেশন হিসেবে বা অন্য অপারেটরসহ কমপ্লেক্স এক্সপ্রেশনে।
সিনট্যাক্স
$x=5; $y=5; $x++; // পোস্টফিক্স ইনক্রিমেন্ট $y--; // পোস্টফিক্স ডিক্রিমেন্ট ++$y; // প্রিফিক্স ইনক্রিমেন্ট --$x; // প্রিফিক্স ডিক্রিমেন্ট
স্বতন্ত্রভাবে ব্যবহার করলে পোস্টফিক্স এবং প্রিফিক্স ইনক্রিমেন্ট/ডিক্রিমেন্ট অপারেটর একইভাবে আচরণ করে। ফলে, $x++ এবং ++$x উভয়ই $x-র মান ১ বাড়ায়। একইভাবে $y-- এবং --$y উভয়ই $y-র মান ১ কমায়।
নিচের কোডে ইনক্রিমেন্ট/ডিক্রিমেন্ট অপারেটরের পোস্ট/প্রিফিক্স আচরণ দেখানো হয়েছে—
উদাহরণ
<?php $x=5; $y=5; $x++; // পোস্টফিক্স ইনক্রিমেন্ট $y--; // পোস্টফিক্স ডিক্রিমেন্ট echo "x = $x y = $y" . "\n"; ++$y; // প্রিফিক্স ইনক্রিমেন্ট --$x; // প্রিফিক্স ডিক্রিমেন্ট echo "x = $x y = $y" . "\n"; ?>
আউটপুট
নিচের ফলাফল দেখানো হবে—
x = 6 y = 4 x = 5 y = 5
অ্যাসাইনমেন্ট এক্সপ্রেশনে ব্যবহার করলে, পোস্টফিক্স ++ বা -- অপারেটরের প্রেসিডেন্স =-এর চেয়ে কম। তাই $a=$x++ মানে $a=$x তারপর $x++। অন্যদিকে, প্রিফিক্স ++/-- অপারেটরদের প্রেসিডেন্স =-এর চেয়ে বেশি। তাই $b=--$y হলো প্রথম --$y তারপর ফলাফল $b-এ অ্যাসাইন।
উদাহরণ
<?php $x=5; $y=5; $a=$x++; // পোস্টফিক্স ইনক্রিমেন্ট echo "a = $a x = $x" . "\n"; $b=--$y; // প্রিফিক্স ডিক্রিমেন্ট echo "b = $b y = $y" . "\n"; ?>
আউটপুট
নিচের ফলাফল দেখানো হবে—
a = 5 x = 6 b = 4 y = 4
ASCII ক্যারেক্টার ভেরিয়েবলের সাথে ইনক্রিমেন্ট/ডিক্রিমেন্ট অপারেশন সম্ভব। ইনক্রিমেন্ট করলে ASCII সেটের পরবর্তী ক্যারেক্টরে চলে যায়। যদি ইনক্রিমেন্ট ASCII সেট ছাড়া চলে যায় (যেমন Z-এর পরে), তবে ASCII সেটের পরবর্তী রাউন্ড শুরু হয় (Z ইনক্রিমেন্ট করলে AA হয়)। নন-ASCII ক্যারেক্টার (A-Z, a-z, 0-9 ছাড়া) ইনক্রিমেন্ট অপারেটর উপেক্ষা করে।
উদাহরণ
<?php
$var='A';
for ($i=1; $i<=3; $i++){
echo ++$var . "\n";
}
$var1=1;
for ($i=1; $i<=3; $i++){
echo ++$var1 . "\n";
}
?>
আউটপুট
নিচের ফলাফল দেখানো হবে—
B C D 2 3 4