استدعاء وظائف فئة فرعية من فئة الأصل
في PHP، من الممكن استدعاء وظيفة من فئة فرعية داخل فئة الأصل، ولكن فهو يتطلب تخطيطًا دقيقًا.
خذ بعين الاعتبار المثال الكودي التالي:
class whale { ... }
class fish extends whale { ... }
في هذا المثال، لدينا صنف الحوت وصنف السمك الذي يرث منه. الهدف هو استدعاء وظيفة test() من فئة الأسماك داخل وظيفة myfunc() من فئة الحوت.
الحل: استخدم الفئات المجردة
لتحقيق ذلك هذا، يمكننا الاستفادة من الطبقات المجردة. تفرض الفئة المجردة تنفيذ طرق معينة في فصولها الفرعية.
abstract class whale {
function __construct() { ... }
function myfunc() { $this->test(); }
abstract function test();
}
في فئة الحوت المحدثة، نعلن الآن عن myfunc() و test() كطرق مجردة. سوف يقوم myfunc () باستدعاء test ()، والذي يجب تنفيذه في الفصل الفرعي.
class fish extends whale {
function __construct() { parent::__construct(); }
function test() { echo "So you managed to call me !!"; }
}
في فئة الأسماك، نقدم تطبيقًا للاختبار (). وهذا يضمن استيفاء المتطلبات المجردة للفئة الأصلية.
باستخدام هذا الإعداد، يمكننا الآن استدعاء وظيفة test() من الأسماك داخل myfunc() لفئة الحوت.
$fish = new fish();
$fish->test(); // Output: So you managed to call me !!
$fish->myfunc(); // Output: So you managed to call me !!
باستخدام الفئات المجردة، نفرض الميراث المناسب ونتأكد من أن الفئات الفرعية تنفذ الأساليب المطلوبة. وهذا يسمح لنا باستدعاء وظائف الفئة الفرعية من الفئات الأصلية بسلاسة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3