النتيجة: غير متساويين.
$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) { /* ... */ }