الزيادة والنقصان
جزء من قسم Fundamentals في رحلة PHP على Coddy — الدرس 19 من 71.
عندما تحتاج إلى إضافة أو طرح 1 بالضبط من متغير، توفر PHP طريقة أقصر من التعيين المدمج: عاملي الزيادة والنقصان.
عامل الزيادة (++) يضيف 1 إلى المتغير، بينما عامل النقصان (--) يطرح 1:
<?php
$count = 5;
$count++; // $count أصبح الآن 6
$count--; // $count أصبح الآن 5 مرة أخرى
?>يمكن وضع هذه المعاملات قبل أو بعد المتغير، مما يؤثر على وقت حدوث التغيير:
<?php
$a = 5;
echo $a++; // يطبع: 5، ثم تصبح قيمة $a تساوي 6
echo $a; // يطبع: 6
$b = 5;
echo ++$b; // تصبح قيمة $b تساوي 6، ثم يطبع: 6
?>مع $a++ (الزيادة اللاحقة)، يتم استخدام القيمة الأصلية أولاً، ثم يتم زيادتها. مع ++$b (الزيادة السابقة)، يتم زيادة القيمة أولاً، ثم يتم استخدامها. ينطبق نفس المنطق على -- لعملية التنقيص.
التحدي
سهلاقرأ رقماً من المدخلات وقم بتخزينه في متغير يسمى $counter.
قم بإجراء العمليات التالية بالترتيب، مع طباعة نتيجة كل عبارة echo في سطر جديد:
- اطبع قيمة
$counter++(زيادة لاحقة - post-increment) - اطبع القيمة الحالية لـ
$counter - اطبع قيمة
++$counter(زيادة سابقة - pre-increment) - قم بإنقاص
$counterباستخدام--(لا يلزم الطباعة) - اطبع القيمة النهائية لـ
$counter
مثال:
إذا كانت المدخلات هي 10، يجب أن تكون المخرجات:
10
11
12
11التفسير:
- الزيادة اللاحقة تطبع 10، ثم يصبح
$counterيساوي 11 - القيمة الحالية هي 11
- الزيادة السابقة تجعل
$counterيساوي 12، ثم تطبع 12 - الإنقاص يجعل
$counterيساوي 11 - القيمة النهائية هي 11
ورقة مرجعية
يقوم معامل الزيادة (++) بإضافة 1 إلى المتغير، بينما يقوم معامل النقصان (--) بطرح 1:
<?php
$count = 5;
$count++; // $count الآن هو 6
$count--; // $count الآن هو 5 مرة أخرى
?>يمكن وضع هذه المعاملات قبل أو بعد المتغير:
- الزيادة اللاحقة (
$a++): يستخدم القيمة الأصلية أولاً، ثم يقوم بالزيادة - الزيادة السابقة (
++$a): يقوم بالزيادة أولاً، ثم يستخدم القيمة الجديدة
<?php
$a = 5;
echo $a++; // المخرجات: 5، ثم يصبح $a يساوي 6
echo $a; // المخرجات: 6
$b = 5;
echo ++$b; // يصبح $b يساوي 6، ثم المخرجات: 6
?>ينطبق نفس المنطق على معامل النقصان (--).
جرّب بنفسك
<?php
// قراءة المدخلات
$counter = intval(fgets(STDIN));
// TODO: اكتب كودك أدناه
// 1. اطبع قيمة ++counter$ (زيادة لاحقة)
// 2. اطبع القيمة الحالية لـ counter$
// 3. اطبع قيمة counter$++ (زيادة سابقة)
// 4. قم بإنقاص counter$ باستخدام -- (لا يلزم الطباعة)
// 5. اطبع القيمة النهائية لـ counter$
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4معاملات المقارنة والمنطق
معاملات المقارنةالمساواة والتطابقالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيط2المتغيرات وأنواع البيانات
الأرقامالنصوص وعلامات الاقتباسالقيم المنطقية (Booleans)قواعد التسميةملخص - تهيئة المتغيراتالمتغيرات الفارغةدمج النصوصاستقبال مدخلات المستخدمتحويل أنواع البيانات5المنطق الشرطي
جملة Ifجملة If - Elseالعامل الثلاثي (Ternary Operator)عامل Null Coalescingجملة Switchمراجعة - اتخاذ القرارات3المعاملات الأساسية
المعاملات الحسابيةمعامل باقي القسمةمعامل الأسالتعيين المركبالزيادة والنقصانأسبقية المعاملاتمراجعة - الحسابات البسيطةمعاملات النصوص