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