ما نتيجة مقارنة “10” === 10 في PHP؟

سهلقراءة دقيقةآخر تحديث 1 أكتوبر 2026

PHP تطوير الويب

الإجابة

النتيجة: غير متساويين.

$a = "10";  // string
$b = 10;    // integer

var_dump($a === $b);  // false
var_dump($a == $b);   // true

العامل === يقارن القيمة والنوع معًا. القيمة متشابهة، لكن $a نص و$b عدد، فالنتيجة false.

أين يحدث هذا في الواقع؟

كل ما يأتي من النماذج ($_POST و$_GET) يكون نصًا، حتى لو كتب المستخدم رقمًا. لذلك قد تفشل مقارنة صارمة مع رقم:

$page = (int) ($_GET['page'] ?? 1);  // convert first
if ($page === 1) { /* ... */ }

اختبر فهمك

ماذا يطبع الكود التالي في PHP؟

$a = "10";
$b = 10;

if ($a === $b) {
    echo "Strictly equal";
} else {
    echo "Not strictly equal";
}