Avatar ·

ما الفرق بين عاملي المقارنة == (مساواة غير صارمة) و === (مساواة صارمة) في PHP؟

مرحباً بالجميع! لقد بدأت للتو في تعلم PHP وواجهت موقفاً غير مفهوم. أكتب سكريبتاً بسيطاً للتحقق من عمر المستخدم، والنتائج تربكني.

إليك الكود الخاص بي:

<?php
$age = "25";  // string
$legal_age = 25;  // int

if ($age == $legal_age) {
    echo "العمر متطابق (==)";  // هذا يظهر
}

if ($age === $legal_age) {
    echo "العمر متطابق (===)";  // هذا لا يظهر
}
?>

لماذا يعمل الشرط الأول بينما لا يعمل الثاني؟ يبدو أن القيمتين متماثلتين في الحالتين — 25. قرأت في الدليل أن هناك == و ===، لكن الفرق غير واضح بالنسبة لي. متى أستخدم أي عامل؟ وماذا سيحدث إذا خلطت بينهما عن طريق الخطأ في مشروع حقيقي؟ مثلاً عند التحقق من كلمة مرور أو ID من قاعدة البيانات؟

شكراً مسبقاً على التوضيحات!

<<>>

شرح مفصل للفرق بين == و === في PHP

سؤال ممتاز! هذه واحدة من أكثر 'المصائد' شيوعاً للمبتدئين في PHP. دعنا نفهم الأمر.