أسبقية المعاملات
جزء من قسم الأساسيات في رحلة PHP على Coddy. الدرس 20 من 71.
عندما يحتوي تعبير على عوامل تشغيل متعددة، تتبع PHP ترتيبًا محددًا يُسمّى أسبقية العوامل. وكما هو الحال في الرياضيات، تُجرى عمليتا الضرب والقسمة قبل الجمع والطرح.
<?php
echo 5 + 3 * 2; // المخرجات: 11، وليس 16
?>تضرب PHP العدد 3 × 2 أولًا (فتحصل على 6)، ثم تضيف 5. ولو كانت للمعاملات أولوية متساوية، لكانت ستجري الحساب من اليسار إلى اليمين: 5 + 3 = 8، ثم 8 × 2 = 16. لكن هذه ليست الطريقة التي تعمل بها.
إليك أولوية العوامل التي تعلمتها، من الأعلى إلى الأدنى:
| الأولوية | العوامل |
| الأعلى | ** (الأس) |
| مرتفعة | * / % |
| منخفضة | + - |
لتجاوز الترتيب الافتراضي، استخدم الأقواس. يتم دائمًا تقييم العمليات الموجودة داخل الأقواس أولًا:
<?php
echo (5 + 3) * 2; // المخرجات: 16
echo 2 ** 3 * 2; // المخرجات: 16 (8 * 2)
echo 2 ** (3 * 2); // المخرجات: 64 (2^6)
?>عند الشك، استخدم الأقواس لتوضيح نواياك. فهذا يجعل قراءة التعليمات البرمجية أسهل ويمنع النتائج غير المتوقعة.
التحدي
سهلاقرأ ثلاثة أرقام من الإدخال: a وb وc.
احسب واطبع نتيجة التعبير التالي، باستخدام الأقواس لضمان حدوث الجمع قبل الضرب:
(a + b) * c ** 2
هذا يعني: اجمع أولًا a وb، ثم اضرب هذا المجموع في c مرفوعًا للقوة 2.
مثال:
إذا كانت المدخلات هي 2 و3 و4، فيجب أن يكون الناتج 80 لأن:
- أولًا، احسب 2 + 3 = 5
- ثم احسب 4 ** 2 = 16
- أخيرًا، اضرب 5 * 16 = 80
جرّب بنفسك
<?php
// قراءة المدخلات
$a = intval(fgets(STDIN));
$b = intval(fgets(STDIN));
$c = intval(fgets(STDIN));
// TODO: اكتب الكود الخاص بك أدناه لحساب (a + b) * c ** 2
// إخراج النتيجة
echo $result;
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4معاملات المقارنة والمنطق
معاملات المقارنةالمساواة والتطابقالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيط2المتغيرات وأنواع البيانات
الأرقامالنصوص وعلامات الاقتباسالقيم المنطقية (Booleans)قواعد التسميةملخص - تهيئة المتغيراتالمتغيرات الفارغةدمج النصوصاستقبال مدخلات المستخدمتحويل أنواع البيانات5المنطق الشرطي
جملة Ifجملة If - Elseالعامل الثلاثي (Ternary Operator)عامل Null Coalescingجملة Switchمراجعة - اتخاذ القرارات3المعاملات الأساسية
المعاملات الحسابيةمعامل باقي القسمةمعامل الأسالتعيين المركبالزيادة والنقصانأسبقية المعاملاتمراجعة - الحسابات البسيطةمعاملات النصوصتدرّب بنفسك: مترجم PHP عبر الإنترنت