شبكة تعلم مع ناو

ما نتيجة مقارنة “10” === 10 في 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) { /* ... */ }

اختبر نفسك

خمسة أسئلة سريعة، مع الإجابة والشرح بعد كل سؤال.