Comparison Operators in PHP

(معاملات المقارنة)

✅ ما هي؟

هي معاملات تُستخدم لمقارنة القيم في PHP، وتُرجع دائمًا إما:

  • true ✅ (صحيح)
  • أو false ❌ (خطأ)

وتُستخدم عادةً في الشروط: if, while, for, switch, وغيرها.

✅ أنواع معاملات المقارنة:
المعاملالوصفمثالالنتيجة
==يساوي (فقط في القيمة)5 == "5"true
===يساوي تماما (قيمة + نوع)5 === "5"false
!= أو <>لا يساوي5 != 6true
!==لا يساوي تماما (قيمة أو نوع مختلف)5 !== "5"true
>أكبر من10 > 7true
<أصغر من3 < 8true
>=أكبر من أو يساوي7 >= 7true
<=أصغر من أو يساوي6 <= 10true
✅ أمثلة وشروحات:
📌 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
✅ استخداماتها الشائعة:
الاستخداممثال
داخل ifif ($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
💡 نصائح:
النصيحةالفائدة
استخدم === بدل == دائمًا إن أمكنلتفادي أخطاء الأنواع
راجع دائمًا نوع المتغير قبل المقارنةخاصًة مع البيانات القادمة من مستخدم أو قاعدة بيانات
تأكد من ترتيب العمليات داخل الشروطلتجنب نتائج غير متوقعة
🧪 تمارين:
  1. أنشئ شرط if يتحقق إذا كان الرقم أكبر من أو يساوي 18.
  2. اكتب شرط يتحقق إن كانت القيمة مساوية تمامًا (نوعًا وقيمة) لـ “admin”.
  3. تحقق إن كان متغير x أصغر من 50 وغير مساوي لـ 30.
  4. استخدم var_dump() مع === و == لرقم وسلسلة (5 و "5") ولاحظ الفرق.
  5. أنشئ برنامج يطبع “Pass” إذا كانت الدرجة أكبر أو تساوي 50، و”Fail” إن لم تكن.
ملخص سريع:
المعاملالمعنىيراعي النوع؟
==يساوي بالقيمة❌ لا
===يساوي بالقيمة والنوع✅ نعم
!=لا يساوي بالقيمة❌ لا
!==لا يساوي بالقيمة والنوع✅ نعم
>أكبر من
<أصغر من
>=أكبر من أو يساوي
<=أصغر من أو يساوي