परिचय
C-शैली के इन्क्रीमेंट और डिक्रीमेंट ऑपरेटर जो ++ और -- द्वारा दर्शाए जाते हैं, PHP में भी परिभाषित हैं। जैसा कि नाम से पता चलता है, ++ इन्क्रीमेंट ऑपरेटर ऑपरेंड वेरिएबल के मान को 1 से बढ़ाता है। डिक्रीमेंट ऑपरेटर -- मान को 1 से घटाता है। दोनों एकल ऑपरेटर हैं क्योंकि उन्हें केवल एक ऑपरेंड की आवश्यकता होती है। ये ऑपरेटर (++ या --) प्रीफिक्स या पोस्टफिक्स तरीके से उपयोग किए जा सकते हैं, या तो एक अभिव्यक्ति के रूप में या अधिक जटिल अभिव्यक्ति में अन्य ऑपरेटरों के साथ।
सिंटैक्स
$x = 5; $y = 5; $x++; // पोस्टफिक्स इन्क्रीमेंट $y--; // पोस्टफिक्स डिक्रीमेंट ++$y; // प्रीफिक्स इन्क्रीमेंट --$x; // प्रीफिक्स डिक्रीमेंट
जब स्वतंत्र रूप से उपयोग किया जाता है, तो पोस्टफिक्स और प्रीफिक्स इन्क्रीमेंट/डिक्रीमेंट ऑपरेटर समान व्यवहार करते हैं। परिणामस्वरूप, $x++ और ++$x दोनों $x के मान को 1 से बढ़ाते हैं। इसी तरह $y-- और --$y दोनों $y के मान को 1 से घटाते हैं।
उदाहरण
उदाहरण 1: पोस्ट/प्रीफिक्स फैशन में इन्क्रीमेंट/डिक्रीमेंट का प्रभाव
<?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
उदाहरण 2: असाइनमेंट अभिव्यक्ति में उपयोग
जब असाइनमेंट अभिव्यक्ति में उपयोग किया जाता है, तो पोस्टफिक्स ++ या -- ऑपरेटर की प्रीसिडेंस = से कम होती है। इसलिए $a = $x++ का परिणाम $a = $x होता है जिसके बाद $x++ होता है। दूसरी ओर, प्रीफिक्स ++/-- ऑपरेटरों की प्रीसिडेंस = से अधिक होती है। इसलिए $b = --$y का मूल्यांकन पहले --$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
उदाहरण 3: 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