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

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

جزء من قسم 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)
?>

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

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 قواعد أسبقية العمليات عند تقييم التعبيرات التي تحتوي على عوامل تشغيل متعددة:

الأولويةعوامل التشغيل
الأعلى** (الأس)
عالية* / %
منخفضة+ -
<?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;
?>
quiz iconاختبر نفسك

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

جميع دروس Fundamentals