(معاملات المقارنة)
✅ ما هي؟
هي معاملات تُستخدم لمقارنة القيم في PHP، وتُرجع دائمًا إما:
true
✅ (صحيح)
- أو
false
❌ (خطأ)
وتُستخدم عادةً في الشروط: if
, while
, for
, switch
, وغيرها.
✅ أنواع معاملات المقارنة:
المعامل | الوصف | مثال | النتيجة |
---|
== | يساوي (فقط في القيمة) | 5 == "5" | true |
=== | يساوي تماما (قيمة + نوع) | 5 === "5" | false |
!= أو <> | لا يساوي | 5 != 6 | true |
!== | لا يساوي تماما (قيمة أو نوع مختلف) | 5 !== "5" | true |
> | أكبر من | 10 > 7 | true |
< | أصغر من | 3 < 8 | true |
>= | أكبر من أو يساوي | 7 >= 7 | true |
<= | أصغر من أو يساوي | 6 <= 10 | true |
✅ أمثلة وشروحات:
📌 1. ==
(يساوي بالقيمة فقط)
$x = 5;
$y = "5";
var_dump($x == $y); // true (لأن القيم متساوية بالرغم من اختلاف النوع)
PHP
📌 2. ===
(يساوي بالقيمة والنوع)
$x = 5;
$y = "5";
var_dump($x === $y); // false (لأن النوع مختلف: integer vs string)
PHP
📌 3. !=
أو <>
(لا يساوي بالقيمة)
$x = 10;
$y = 20;
var_dump($x != $y); // true
var_dump($x <> $y); // true
PHP
📌 4. !==
(لا يساوي بالقيمة أو النوع)
$x = 10;
$y = "10";
var_dump($x !== $y); // true (نفس القيمة لكن نوع مختلف
PHP
📌 5. >
(أكبر من)
$x = 8;
var_dump($x > 5); // true
PHP
📌 6. <
(أصغر من)
$x = 2;
var_dump($x < 7); // true
PHP
📌 7. >=
و <=
$x = 10;
var_dump($x >= 10); // true
var_dump($x <= 15); // true
PHP
✅ استخداماتها الشائعة:
الاستخدام | مثال |
---|
داخل if | if ($x == 5) { echo "Number is 5"; } |
في الحلقات | while ($x < 10) |
في المقارنات المعقدة | if ($x > 10 && $x < 20) |
مع المدخلات (التحقق من القيم) | if ($_POST['age'] >= 18) |
⚠️ محاذير مهمة:
التحذير | السبب |
---|
لا تخلط بين = و == | = للإسناد، == للمقارنة |
استخدم === عندما يهمك النوع | لمنع الأخطاء التي يسببها التحويل التلقائي |
الانتباه للأنواع عند المقارنة | لأن "0" == false تُرجع true بسبب التحويل |
❗ مثال خطير:
if ("0" == false) {
echo "متساوي"; // ✅ تطبع رغم أن "0" سترينغ!
}
if ("0" === false) {
echo "متساوي"; // ❌ لا تطبع لأن الأنواع مختلفة (string vs boolean)
}
PHP
💡 نصائح:
النصيحة | الفائدة |
---|
استخدم === بدل == دائمًا إن أمكن | لتفادي أخطاء الأنواع |
راجع دائمًا نوع المتغير قبل المقارنة | خاصًة مع البيانات القادمة من مستخدم أو قاعدة بيانات |
تأكد من ترتيب العمليات داخل الشروط | لتجنب نتائج غير متوقعة |
🧪 تمارين:
- أنشئ شرط
if
يتحقق إذا كان الرقم أكبر من أو يساوي 18.
- اكتب شرط يتحقق إن كانت القيمة مساوية تمامًا (نوعًا وقيمة) لـ “admin”.
- تحقق إن كان متغير
x
أصغر من 50 وغير مساوي لـ 30.
- استخدم
var_dump()
مع ===
و ==
لرقم وسلسلة (5
و "5"
) ولاحظ الفرق.
- أنشئ برنامج يطبع “Pass” إذا كانت الدرجة أكبر أو تساوي 50، و”Fail” إن لم تكن.
ملخص سريع:
المعامل | المعنى | يراعي النوع؟ |
---|
== | يساوي بالقيمة | ❌ لا |
=== | يساوي بالقيمة والنوع | ✅ نعم |
!= | لا يساوي بالقيمة | ❌ لا |
!== | لا يساوي بالقيمة والنوع | ✅ نعم |
> | أكبر من | – |
< | أصغر من | – |
>= | أكبر من أو يساوي | – |
<= | أصغر من أو يساوي | – |