شرح صفوف ومحتوى الفقرة
تحدد أولويات المعاملات أي جزء من التعبير المركب ينفذه مفسر PHP أولاً عند عدم وجود أقواس.
- معامل الأسس
**والنفي المنطقي!لهما أولوية أعلى من الضرب*والقسمة/وباقي القسمة%. - معاملات المقارنة (
<و===و<=>) تُنفذ قبل&&، الذي يُنفذ قبل||، الذي يُنفذ قبل??. - في PHP 8.0+، تداخل المعاملات الثلاثية
? :بدون أقواس يطلق خطأً قاتلاً؛ لذا استخدم الأقواس الصريحة دائماً!
يُحسب الأس 2 ** 2 (4) أولاً ثم الضرب 5 * 4 (20) ثم الجمع (30)؛ ولأن && أقوى من || تُقيّم العبارة كـ (false && false) || true.
| الأولوية (من الأعلى للأدنى) | المعاملات | اتجاه التجميع | القاعدة الأهم |
|---|---|---|---|
| 1 (Highest) | ** | Right | Exponentiation runs before unary/math |
| 2 | !, (int), ++ | Right | Logical NOT and type casts |
| 3 | *, /, % | Left | Multiplication, division, modulo |
| 4 | +, - | Left | Addition and subtraction |
| 5 | <, <=, >, >= | Non-assoc | Relational comparisons |
| 6 | ==, !=, ===, !==, <=> | Non-assoc | Equality and spaceship |
| 7 | && then || then ?? | Left / Right | && binds tighter than || |
| 8 | ? : then =, ??= | Non-assoc / Right | Assignment happens after && / || |
| 9 (Lowest) | and, xor, or | Left | Word operators bind WEAKER than =! |
PHP
<?php
$calc = 10 + 5 * 2 ** 2;
$logic = false && false || true;
$explicit = false && (false || true);
echo "Calc: $calc\n";
var_dump($logic, $explicit);
خلاصة المعرفة ومحطة الانتقال
ملخص الدرس
حصاد الدرسمراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي
ماذا تعلّمت في هذا الدرس؟
تحدد أولويات المعاملات أي جزء من التعبير المركب ينفذه مفسر PHP أولاً عند عدم وجود أقواس. معامل الأسس ** والنفي المنطقي ! لهما أولوية أعلى من الضرب * والقسمة / وباقي القسمة %. معاملات المقارنة (< و=== و<=>) تُنفذ قبل &&، الذي يُنفذ قبل ||، الذي يُنفذ قبل ??. في PHP 8.0+، تداخل المعاملات الثلاثية ? : بدون أقواس يطلق خطأً قاتلاً؛ لذا استخدم الأقواس الصريحة دائماً!