شرح صفوف ومحتوى الفقرة
على عكس switch، يجري match دائماً مقارنة تطابق صارمة (===)، مما يمنع أخطاء الخلط التلقائي بين النصوص والأعداد والقيم المنطقية.
- في
match، النص"200"لن يتطابق أبداً مع المسار الرقمي200 => .... - العدد الصحيح
0لن يتطابق معfalseأوnullأو النص الفارغ"". - تعمل المقارنة الصارمة تلقائياً في
matchحتى لو لم يتم كتابةdeclare(strict_types=1).
لأن $rawInput نص "1"، يتخطى match العدد الصحيح 1 والقيمة المنطقية true ويطابق فقط المسار النصي "1".
PHP
<?php
$rawInput = "1";
$result = match ($rawInput) {
1 => "Matched integer 1",
true => "Matched boolean true",
"1" => "Matched string '1' strictly",
default => "Other",
};
echo "$result\n";