Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

المساواة والتطابق

جزء من قسم Fundamentals في رحلة PHP على Coddy. الدرس 24 من 71.

توفر PHP طريقتين للتحقق مما إذا كانت القيم متساوية: معامل المساواة (==) و معامل التطابق (===). فهم الفرق أمر بالغ الأهمية لكتابة كود موثوق.

عامل التساوي (==) يقارن القيم بعد تحويلها إلى نفس النوع. يُسمى هذا بـ "المقارنة غير الصارمة" (loose comparison):

<?php
var_dump(5 == "5");    // bool(true) - تم تحويل السلسلة النصية إلى رقم
var_dump(0 == false);  // bool(true) - كلاهما يصبح 0
var_dump(1 == true);   // bool(true) - كلاهما يصبح 1
?>

يقارن عامل التطابق (===) كلاً من القيمة والنوع. لا يحدث أي تحويل، لذا يجب أن يتطابق كلاهما تماماً:

<?php
var_dump(5 === "5");   // bool(false) - عدد صحيح مقابل سلسلة نصية
var_dump(5 === 5);     // bool(true) - نفس النوع والقيمة
var_dump(0 === false); // bool(false) - عدد صحيح مقابل قيمة منطقية
?>

للمقارنات "غير المتساوية"، استخدم != (غير صارمة) أو !== (صارمة):

<?php
var_dump(5 != "5");    // bool(false) - القيم متساوية
var_dump(5 !== "5");   // bool(true) - الأنواع تختلف
?>

كأفضل ممارسة، فضل استخدام === و !== لتجنب مفاجآت تحويل الأنواع غير المتوقعة.

challenge icon

التحدي

سهل

اقرأ قيمتين من المدخلات: رقم (كسلسلة نصية) وعدد صحيح.

استخدم عاملي المساواة والتطابق لتقييم المقارنات التالية واطبع نتيجة كل منها باستخدام var_dump()، كل واحدة في سطر جديد:

  1. تحقق مما إذا كانت قيمة السلسلة النصية تساوي العدد الصحيح باستخدام المقارنة غير الصارمة (==)
  2. تحقق مما إذا كانت قيمة السلسلة النصية تساوي العدد الصحيح باستخدام المقارنة الصارمة (===)
  3. تحقق مما إذا كانت قيمة السلسلة النصية لا تساوي العدد الصحيح باستخدام المقارنة غير الصارمة (!=)
  4. تحقق مما إذا كانت قيمة السلسلة النصية لا تساوي العدد الصحيح باستخدام المقارنة الصارمة (!==)

ملاحظة: احتفظ بالقيمة الأولى كسلسلة نصية (لا تقم بتحويل نوعها). قم بتحويل القيمة الثانية إلى عدد صحيح.

مثال:

إذا كانت المدخلات هي 42 و 42، يجب أن تكون المخرجات:

bool(true)
bool(false)
bool(false)
bool(true)

الشرح:

  • "42" == 42 هو true (القيم متساوية بعد تحويل النوع)
  • "42" === 42 هو false (سلسلة نصية مقابل عدد صحيح - أنواع مختلفة)
  • "42" != 42 هو false (القيم متساوية)
  • "42" !== 42 هو true (الأنواع مختلفة)

جرّب بنفسك

<?php
// قراءة المدخلات
$stringValue = trim(fgets(STDIN));
$intValue = intval(trim(fgets(STDIN)));

// TODO: اكتب كودك أدناه
// استخدم var_dump() لطباعة نتيجة كل مقارنة في سطر جديد:
// 1. المساواة غير الصارمة (==)
// 2. المساواة الصارمة (===)
// 3. عدم المساواة غير الصارمة (!=)
// 4. عدم المساواة الصارمة (!==)

?>
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals

تدرّب بنفسك: مترجم PHP عبر الإنترنت