التعرف على الوراثة في PHP وكيفية استخدامها
تمت الكتابة بواسطة: عبد الحكيم
تارخ آخر تحديث: 26 ديسمبر 2024محتوى المقال
- ما هي الوراثة في PHP؟
- إنشاء فئة أساسية (Parent Class)
- إنشاء فئة فرعية (Child Class)
- تجاوز الدوال (Overriding Methods)
- الوصول إلى دوال الفئة الأم باستخدام parent::
- الخلاصة
الوراثة (Inheritance) هي واحدة من المبادئ الأساسية في البرمجة الكائنية التوجه (OOP) وتُستخدم لإعادة استخدام الكود وتنظيمه بشكل أفضل. في PHP، تسمح الوراثة لفئة (Class) بالاستفادة من الخصائص والطرق الموجودة في فئة أخرى، مما يتيح إنشاء فئات جديدة بناءً على فئات موجودة بالفعل.
ما هي الوراثة في PHP؟
الوراثة تسمح لفئة (تسمى الفئة الابنة أو الفرعية) بأن ترث خصائص وطرق فئة أخرى (تسمى الفئة الأم أو الرئيسية). يمكن للفئة الابنة إضافة أو تعديل الوظائف التي ترثها من الفئة الأم، مما يسهل إنشاء فئات جديدة تعتمد على فئات موجودة.
إنشاء فئة أساسية (Parent Class)
لنبدأ بإنشاء فئة أساسية تُسمى Vehicle
تمثل مركبة عامة:
<?php
class Vehicle {
public $make;
public $model;
public function startEngine() {
return "المحرك يعمل";
}
}
?>
الفئة Vehicle
تحتوي على خصائص $make
و$model
ودالة startEngine
التي تُرجع رسالة عند تشغيل المحرك.
إنشاء فئة فرعية (Child Class)
الآن، لننشئ فئة فرعية تُسمى Car
ترث من الفئة Vehicle
. سنضيف خاصية جديدة ودالة إضافية في الفئة الفرعية:
<?php
class Car extends Vehicle {
public $year;
public function displayInfo() {
return $this->make . " " . $this->model . " " . $this->year;
}
}
# إنشاء كائن من الفئة الفرعية واستخدام الخصائص والدوال
$myCar = new Car;
$myCar->make = "تويوتا";
$myCar->model = "كورولا";
$myCar->year = 2023;
echo $myCar->startEngine(); # ورثت من الفئة الأساسية
echo $myCar->displayInfo(); # مُعرفة في الفئة الفرعية
?>
في هذا المثال، الفئة Car
ترث من الفئة Vehicle
وتستفيد من الخصائص والدوال المعرفة فيها. الفئة Car
تضيف خاصية جديدة $year
ودالة جديدة displayInfo
.
تجاوز الدوال (Overriding Methods)
يمكن للفئة الفرعية أن تتجاوز (Override) دوال الفئة الأساسية لتعريف سلوك مختلف. لنقم بتجاوز دالة startEngine
في الفئة Car
:
<?php
class Car extends Vehicle {
public $year;
public function startEngine() {
return "تشغيل محرك السيارة";
}
public function displayInfo() {
return $this->make . " " . $this->model . " " . $this->year;
}
}
# إنشاء كائن واستخدام الدوال
$myCar = new Car;
$myCar->make = "تويوتا";
$myCar->model = "كورولا";
$myCar->year = 2023;
echo $myCar->startEngine(); # الدالة المُتجاوزة
echo $myCar->displayInfo();
?>
في هذا المثال، دالة startEngine
تم تجاوزها في الفئة Car
لتعطي رسالة مختلفة عند تشغيل المحرك.
الوصول إلى دوال الفئة الأم باستخدام parent::
إذا كنت بحاجة لاستدعاء دالة من الفئة الأم داخل الفئة الفرعية بعد تجاوزها، يمكنك استخدام الكلمة المفتاحية parent::
:
<?php
class Car extends Vehicle {
public function startEngine() {
echo "تشغيل محرك السيارة... ";
echo parent::startEngine();
}
}
# إنشاء كائن واستخدام الدالة
$myCar = new Car;
echo $myCar->startEngine();
?>
في هذا المثال، دالة startEngine
في الفئة Car
تستدعي دالة startEngine
من الفئة الأم Vehicle
باستخدام parent::startEngine
.
الخلاصة
الوراثة في PHP تُعد أداة قوية لإعادة استخدام الكود وتنظيمه. من خلال الوراثة، يمكن للفئات الجديدة الاستفادة من الوظائف والخصائص الموجودة في فئات أخرى مع إمكانية التوسع أو التعديل عليها. هذا يُساعد في بناء تطبيقات برمجية مرنة وقابلة للصيانة.
طور مهاراتك: مقالات يجب قراءتها في البرمجة
- إنشاء دوال متكررة في الكلاس باستخدام الوراثة في PHP
- كيفية الاتصال بقاعدة بيانات MySQL باستخدام PHP
- إنشاء وإدارة الجداول في MySQL باستخدام PHP
- كيفية إدراج البيانات في قاعدة البيانات باستخدام PHP
- تحديث البيانات في قاعدة البيانات باستخدام PHP
- حذف البيانات من قاعدة البيانات باستخدام PHP
- استخدام العبارات المجهزة (Prepared Statements) في PHP
- حماية البيانات المدخلة في قاعدة البيانات من SQL Injection
- كيفية تنفيذ عمليات البحث والاستعلامات في PHP
- استخدام PDO و MySQLi للتعامل مع قواعد البيانات في PHP