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

كيفية استدعاء وظائف فئة الطفل من فئة الأصل في PHP باستخدام فئات مجردة؟

تم النشر بتاريخ 2024-11-01
تصفح:569

How to Call Child Class Functions from Parent Class in PHP Using Abstract Classes?

استدعاء وظائف فئة فرعية من فئة الأصل

في 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 !!

باستخدام الفئات المجردة، نفرض الميراث المناسب ونتأكد من أن الفئات الفرعية تنفذ الأساليب المطلوبة. وهذا يسمح لنا باستدعاء وظائف الفئة الفرعية من الفئات الأصلية بسلاسة.

بيان الافراج أعيد طبع هذه المقالة على: 1729297456 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3