Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

أسبقية المعاملات

جزء من قسم الأساسيات في رحلة 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)
?>

عند الشك، استخدم الأقواس لتوضيح نواياك. فهذا يجعل قراءة التعليمات البرمجية أسهل ويمنع النتائج غير المتوقعة.

challenge icon

التحدي

سهل

اقرأ ثلاثة أرقام من الإدخال: 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;
?>
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: مترجم PHP عبر الإنترنت