الكشف عن دور الأنواع الصارمة في PHP
لقد استحوذ مفهوم الأنواع الصارمة في PHP، الذي تم تقديمه في الإصدار 7، على اهتمام المطورين . تهدف هذه المقالة إلى إزالة الغموض عن غرض وتأثير الأنواع الصارمة، مما يوفر فهمًا شاملاً لفوائدها وفائدتها.
ما هي الأنواع الصارمة؟
في PHP 7 و لاحقًا، يمكن إضافة الأنواع العددية (int، وfloat، وstring، وbool) إلى وسائط الدالة وإرجاع القيم، مما يفرض فحصًا أكثر صرامة للنوع. من خلال تمكين المتطلبات الصارمة من خلال بيان التصريح (strict_types = 1)، يكتسب المطورون تحكمًا أكبر في التعليمات البرمجية الخاصة بهم ويعززون وضوحها.
كيف تعمل الأنواع الصارمة
افتراضيًا تقوم PHP تلقائيًا بإرسال القيم إلى النوع العددي المتوقع عند مواجهة أنواع غير متطابقة. على سبيل المثال، إذا كانت الوظيفة تتطلب عددًا صحيحًا ولكنها تتلقى سلسلة، فإن PHP تقوم بتحويل السلسلة إلى عدد صحيح إن أمكن.ومع ذلك، مع تمكين الأنواع الصارمة، لن تقوم PHP بإجراء إكراه النوع التلقائي. إذا كان تعريف نوع المعلمة لا يتطابق مع القيمة الفعلية، فسيتم طرح استثناء TypeError ما لم تكن القيمة عددًا صحيحًا مخصصًا لمعلمة عائمة.
فوائد الأنواع الصارمة
يجلب فرض الأنواع الصارمة العديد من الفوائد:
التنفيذ والأمثلةلتمكين الأنواع الصارمة لملف بأكمله، قم بتضمين السطر التالي في بداية البرنامج النصي PHP:
declare(strict_types = 1);declare(strict_types = 1);
بدون أنواع صارمة:
الوظيفة addIntAndFloat($a, $b) : int { إرجاع $a $b؛ } $result = addIntAndFloat(1.4, '2'); صدى نتيجة $؛ // الإخراج: 3
function addIntAndFloat($a, $b) : int
{
return $a $b;
}
$result = addIntAndFloat(1.4, '2');
echo $result; // Output: 3
مع الأنواع الصارمة:
declare(strict_types = 1); الوظيفة addIntAndFloat(int $a, float $b) : int { إرجاع $a $b؛ } $result = addIntAndFloat(1.4, '2');
يؤدي تمكين الأنواع الصارمة إلى حدوث استثناء TypeError، مما يمنع تنفيذ التعليمات البرمجية. يوضح هذا أهمية إعلانات النوع الصريحة وتجنب تحويلات النوع غير المتوقعة.declare(strict_types = 1);
function addIntAndFloat(int $a, float $b) : int
{
return $a $b;
}
$result = addIntAndFloat(1.4, '2');
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3