PHP / دليل حلول تحريري

المفاتيح غير المعرفة وTypeError والأصناف الغائبة

صنّف الفشل قبل تعديل الشيفرة والاعتماد. تتبع بنية الطلب وعقد النوع والمساحة ومسار التحميل بأدلة مصطنعة صغيرة.

وقت القراءة التقريبي: 2 دقيقةتاريخ مراجعة المحتوى

قاعدة معرفة للقراءة فقط · بلا تعليقات عامة

تعرّف على الأعراض

قد يصدر الطلب تحذير مفتاح أو يرفض النوع قيمة أو يغيب صنف من مدخل نظيف. قد تجتمع لافتراض بنية أو تهيئة توجد بجهاز واحد. احفظ أول تشخيص دقيق وأصغر مدخل.

افهم الأسباب المحتملة

  • تشمل الأسباب خلط الغائب وnull ومصفوفة مكان أولي وreturn ناقصة واعتبار use محملاً واختلاف حالة PSR-4 وعدم تضمين المحمل. يخفي القمع أو التحديث الواسع الفشل دون إصلاح العقد.

1. فصل الآلية من الافتراض المكسور

ميّز التحذير وTypeError والتحميل. افحص ملخصاً آمناً للقيمة قبل الفشل: النوع والوجود ومعرفاً مصطنعاً، لا الطلب والأسرار. يحتاج الغائب سياسة وجود والخاطئ تحليلاً والصنف دليلاً للاسم والتحميل. ابدأ بأول خطوة حتى لا تقود الأعراض لإصلاحات غير مرتبطة.

2. استعادة عقد المدخل والغياب

استخدم array_key_exists لتمييز null و?? لبديل مسموح فعلاً. افحص الأولي قبل النص والعدد. يحفظ المثال الصفر ويميز الملاحظة الموجودة null. لا تصلح مصفوفة افتراضية سجلاً مطلوباً، وأصلح return الناقصة بمصدرها لا قبول الغياب بكل مستدعٍ.

php بقاء الوجود وnull منفصلين
<?php
declare(strict_types=1);
$input = ["count" => 0, "note" => null];
echo $input["count"] ?? 10, PHP_EOL;
echo array_key_exists("note", $input) ? "present
" : "missing
";
echo isset($input["note"]) ? "non-null
" : "null-or-missing
";
الناتج المتوقع
0
present
null-or-missing

لا ينتج تحذير مفتاح ولا يستبدل الصفر الصالح.

3. إصلاح حد النوع لا تعطيله

قارن التصريح بالقيمة. قد يكون نص عدد الطلب نوعاً خاطئاً تحت الصرامة؛ حلله وتحقق بالمحول قبل المجال. لا تحذف تصريحاً مفيداً لقبول المشوه. ميّز رفض المستخدم والعيب. وإذا كانت الصياغة أحدث فلن يصلحها cast؛ افحص الثنائي الفعلي والحد الموثق.

4. تشخيص اكتشاف الصنف دون تغيير أعمى

سجل الاسم الكامل والتصريح والمجلد والملف وحالته وتضمين المحمل. يغير use الاسم لا التحميل. اقرأ البيانات والقفل وأعد التوليد بإجراء المشروع عند تغير الخريطة؛ لا تعدّل vendor أو تحدث لخطأ تهجئة. لا يثبت صنف محمل داخل اختبار تكامل المدخل النظيف. افصل هذا الفحص عن اللغة.

تحقق من نجاح الإصلاح

اختبر الغائب وnull والصفر والنوع والمصفوفة مستقلاً، ثم مدخلاً نظيفاً للصنف والحالة والبيئة. أكد زوال التشخيص بالسبب الصحيح ورفض المشوه المقصود لا خطأ آخر.

امنع تكرار المشكلة

  • تحقق من الخارج مرة ووثّق null واحفظ الأنواع واختبر الإرجاع. طابق المسار والاسم واقفل الاعتماد. تجنب القمع والتحديث العام كافتراض واحفظ أصغر تكرار وبيئته.

المراجع الرسمية