(معاملات المقارنة)
✅ ما هي؟
هي معاملات تُستخدم لمقارنة القيم في 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” إن لم تكن.
ملخص سريع:
| المعامل | المعنى | يراعي النوع؟ |
|---|
== | يساوي بالقيمة | ❌ لا |
=== | يساوي بالقيمة والنوع | ✅ نعم |
!= | لا يساوي بالقيمة | ❌ لا |
!== | لا يساوي بالقيمة والنوع | ✅ نعم |
> | أكبر من | – |
< | أصغر من | – |
>= | أكبر من أو يساوي | – |
<= | أصغر من أو يساوي | – |