عمليات المقارنة في PHP — شرح عملي للكود والنتيجة
في الدروس السابقة كنت تجري عمليات حسابية. الآن ننتقل للخطوة الأهم في اتخاذ القرار: المقارنة. البرنامج يسأل أسئلة مثل: هل العمر أكبر من 18؟ هل كلمة المرور صحيحة؟
ما هي عمليات المقارنة في PHP؟
معاملات المقارنة تقارن بين قيمتين، والنتيجة تكون دائماً true أو false.
هذه النتيجة تُستخدم لاحقاً داخل الشروط مثل if.
جدول معاملات المقارنة الأساسية
| المعامل | المعنى | مثال | النتيجة |
|---|---|---|---|
== |
يساوي في القيمة | 5 == "5" |
true |
=== |
يساوي في القيمة والنوع | 5 === "5" |
false |
!= |
لا يساوي | 5 != 8 |
true |
> |
أكبر من | 10 > 5 |
true |
< |
أصغر من | 3 < 1 |
false |
>= |
أكبر من أو يساوي | 10 >= 10 |
true |
<= |
أصغر من أو يساوي | 7 <= 10 |
true |
الفرق المهم: == مقابل ===
مثال 1: المقارنة بالقيمة فقط
الكود:
<?php
var_dump(5 == "5");
?>
ما يظهر في المتصفح:
bool(true)
شرح الكود: استخدمنا == التي تقارن القيمة فقط، لذلك اعتبرت 5 و"5" متساويتين رغم اختلاف النوع.
مثال 2: المقارنة بالقيمة والنوع معاً
الكود:
<?php
var_dump(5 === "5");
?>
ما يظهر في المتصفح:
bool(false)
هنا القيم متشابهة ظاهرياً، لكن النوع مختلف: الأولى رقم، والثانية نص.
أمثلة مقارنة شائعة في المشاريع
التحقق من سن المستخدم
الكود:
<?php
$age = 20;
var_dump($age >= 18);
?>
ما يظهر في المتصفح:
bool(true)
شرح الكود: خزنا العمر في $age ثم سألنا: هل العمر أكبر من أو يساوي 18؟ النتيجة true لأن 20 تحقق الشرط.
التحقق من تطابق كلمتي مرور
الكود:
<?php
$pass1 = "123456";
$pass2 = "123456";
var_dump($pass1 === $pass2);
?>
ما يظهر في المتصفح:
bool(true)
شرح الكود: قارنا نصين باستخدام === (قيمة + نوع). لأن النصين متطابقان تماماً، ظهرت النتيجة true.
تنبيه مهم: لا تخلط بين = و ==
=للإسناد: وضع قيمة داخل متغير.==للمقارنة: سؤال "هل القيم متساوية؟".
<?php
$x = 5; // إسناد
var_dump($x == 5); // مقارنة
?>
شرح الكود: في السطر الأول استخدمنا = لتخزين القيمة 5 داخل $x. في السطر الثاني استخدمنا == للتحقق أن قيمة $x تساوي 5.
أخطاء شائعة في المقارنة
- استخدام
==عند الحاجة لمقارنة دقيقة بالنوع، وكان الأفضل===. - نسيان أن النص الرقمي مثل
"5"يختلف نوعه عن الرقم5. - الخلط بين الإسناد والمقارنة.
- استخدام
echoفقط لنتيجة Boolean بدلvar_dump()أثناء التعلم.
تمرين سريع
- أنشئ متغيرين:
$a = 10و$b = "10". - اختبر:
$a == $bثم$a === $bباستخدامvar_dump(). - اكتب مقارنة ثالثة:
$a > 5ولاحظ النتيجة.
الأسئلة الشائعة — FAQ
ما الفرق بين == و === في PHP؟
== يقارن القيمة فقط، بينما === يقارن القيمة والنوع معاً.
ما الفرق بين = و ==؟
= للإسناد، و== للمقارنة.
كيف أعرض نتيجة المقارنة بوضوح؟
استخدم var_dump() لأنها تعرض bool(true) أو bool(false) بوضوح.
متى أفضل استخدام ===؟
في أغلب الحالات العملية عندما تحتاج نتيجة دقيقة وآمنة تشمل النوع والقيمة.
بعد إتقان المقارنة، انتقل إلى الدرس التالي: المعاملات المنطقية في PHP.
AND وOR.