"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية استرداد اسم الفصل من استدعاء طريقة ثابتة في فئات PHP الممتدة؟

كيفية استرداد اسم الفصل من استدعاء طريقة ثابتة في فئات PHP الممتدة؟

نشر في 2025-03-22
تصفح:882

How to retrieve the class name from a static method call in extended PHP classes?

النظر في السيناريو التالي:

إجراء الفصل { الدالة n () {/ * بعض التنفيذ */} } يمتد الفئة MyAction الإجراء {/ * تنفيذ مزيد من التنفيذ */}

في هذه الحالة ، استدعاء MyAction :: n () ؛ يجب أن تعيد "MyAction" باعتباره اسم classname. ومع ذلك ، فإن متغير __class__ يرجع فقط اسم الفئة الأصل ("الإجراء"). تتيح هذه الميزة تحديد الفئة المسمى باستخدام وظيفة get_called_class ():

class Action {
    function n() {/* some implementation */}
}

class MyAction extends Action {/* further implementation */}

نهج بديل (prephp 5.3): الوظيفة العامة n () { إرجاع get_class ($ this) ؛ } } يمتد الفئة MyAction الإجراء { } $ foo = myaction جديد ؛ echo $ foo-> n () ؛ // الإخراج: MyAction

تذكر ، أن هذا النهج لا يعمل إلا مع الأساليب غير الستاطية ، لأن وظيفة get_class () تأخذ مثيلًا للفصل كوسيطة.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3