الفرق بين المراجعتين لصفحة: «PHP/class inheritance»

من موسوعة حسوب
< PHP
لا ملخص تعديل
 
ط نقل عبد اللطيف ايمش صفحة PHP/OOP/inheritance إلى PHP/class inheritance: إعادة هيكلة التوثيق
 
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة)
سطر 53: سطر 53:
== مصادر ==
== مصادر ==
* [http://php.net/manual/en/language.oop5.inheritance.php صفحة Object Inheritance في توثيق PHP الرسمي.]
* [http://php.net/manual/en/language.oop5.inheritance.php صفحة Object Inheritance في توثيق PHP الرسمي.]
[[تصنيف:PHP]]
[[تصنيف:PHP|{{SUBPAGENAME}}]]
[[تصنيف:PHP OOP]]
[[تصنيف:PHP OOP|{{SUBPAGENAME}}]]

المراجعة الحالية بتاريخ 03:50، 4 أبريل 2018

وراثة الكائنات من المبادئ المعروفة في البرمجة كائنية التوجه وتستخدمه PHP في نموذج الكائنات الخاصّ بها. يؤثّر هذا المبدأ على العلاقة التي تربط بين الأصناف والكائنات.

فعلى سبيل المثال، عند توسيع صنف معين، يرث الصنف الفرعي جميع التوابع من نوع public و protected من الصنف الأب، وإن لم يتجاوز (override،أي يعيد تعريف) الصنف الابن هذه التوابع فإنّها ستحافظ على وظيفتها الأصلية.

يساعد مبدأ وراثة الكائنات في تعريف الوظائف التي تؤديها التوابع وجعلها أكثر تجريدًا، ويتيح أداء المزيد من الوظائف في الكائنات المتشابهة دون الحاجة إلى إعادة كتابة تلك الوظائف كلّ مرة.

ملاحظة: يجب تعريف الأصناف قبل استخدامها في حال عدم استخدام خاصية التحميل التلقائي. وفي حال توسيع صنف لصنف آخر، يجب التصريح عن الصنف الأب قبل بنية الصنف الابن. تنطبق هذه القاعدة على الأصناف التي ترث أصنافًا وواجهات أخرى.

المثال 1: مثال على وراثة الكائنات

<?php

class Foo
{
    public function printItem($string)
    {
        echo 'Foo: ' . $string . PHP_EOL;
    }
    
    public function printPHP()
    {
        echo 'PHP is great.' . PHP_EOL;
    }
}

class Bar extends Foo
{
    public function printItem($string)
    {
        echo 'Bar: ' . $string . PHP_EOL;
    }
}

$foo = new Foo();
$bar = new Bar();
$foo->printItem('baz');
$foo->printPHP();
$bar->printItem('baz');
$bar->printPHP();

?>

تعطي الشيفرة السابقة المخرجات التالية:

'Foo: baz'
'PHP is great'
'Bar: baz'
'PHP is great'

مصادر