0Pricing
PHP Academy · درس

تعدد الأشكال

استكشف تجاوز الأساليب والسلوك الديناميكي في البرمجة كائنية التوجه

تعدد الأشكال درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 5 من أصل 5. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 5 دروس في المجموع.

تعدد الأشكال في PHP

تعدد الأشكال في PHP

مرحبًا بكم في درس تعدد الأشكال! في هذا الدرس، ستتعلمون كيف يتيح تعدد الأشكال للكائنات اتخاذ أشكال متعددة، ويمكّن من كتابة شيفرة مرنة وقابلة لإعادة الاستخدام في PHP. لنبدأ!

تعدد الأشكال — رسم توضيحي 1

ما هو تعدد الأشكال؟

ما هو تعدد الأشكال؟

يتيح تعدد الأشكال للكائنات اتخاذ أشكال متعددة. في PHP، يعني ذلك أن الأسلوب يمكن أن يتصرف بشكل مختلف اعتمادًا على الكائن الذي يستدعيه. ويتحقق ذلك من خلال تجاوز الأساليب أو تنفيذ الواجهات.

نقطة مهمة: يبسط تعدد الأشكال الشيفرة ويعزز مرونتها من خلال السماح للأسلوب نفسه بتنفيذ مهام مختلفة اعتمادًا على السياق.

تعدد الأشكال عبر تجاوز الأساليب

تعدد الأشكال عبر تجاوز الأساليب

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

نقطة مهمة: يتيح تجاوز الأساليب للفئات المختلفة تحديد سلوك خاص للأسلوب نفسه.

<?php
  class Animal {
    public function speak() {
      echo "The animal makes a sound.";
    }
  }

  class Dog extends Animal {
    public function speak() {
      echo "The dog barks.";
    }
  }

  class Cat extends Animal {
    public function speak() {
      echo "The cat meows.";
    }
  }

  $animals = [new Dog(), new Cat()];

  foreach ($animals as $animal) {
    $animal->speak();
    echo "<br>";
  }
?>

تعدد الأشكال باستخدام الواجهات

تعدد الأشكال باستخدام الواجهات

توفر الواجهات عقدًا للفئات لتنفيذ أساليب محددة. ويضمن ذلك تعريف جميع الفئات المنفذة للأساليب المطلوبة. مثال:

نصيحة: تساعد الواجهات على فرض الاتساق بين الفئات.

<?php
  interface Shape {
    public function calculateArea();
  }

  class Circle implements Shape {
    private $radius;

    public function __construct($radius) {
      $this->radius = $radius;
    }

    public function calculateArea() {
      return pi() * pow($this->radius, 2);
    }
  }

  class Rectangle implements Shape {
    private $width, $height;

    public function __construct($width, $height) {
      $this->width = $width;
      $this->height = $height;
    }

    public function calculateArea() {
      return $this->width * $this->height;
    }
  }

  $shapes = [new Circle(5), new Rectangle(4, 6)];

  foreach ($shapes as $shape) {
    echo "Area: " . $shape->calculateArea() . "<br>";
  }
?>

فوائد تعدد الأشكال

فوائد تعدد الأشكال

يوفر تعدد الأشكال العديد من المزايا:

  • يشجع على إعادة استخدام الشيفرة.
  • يجعل الشيفرة أكثر مرونة وقابلية للتوسع.
  • يبسط إضافة فئات ووظائف جديدة.

مثال: تتطلب إضافة شكل جديد إلى المثال السابق تنفيذ الواجهة Shape وتعريف الأسلوب calculateArea().

تعدد الأشكال باستخدام الفئات المجرّدة

تعدد الأشكال باستخدام الفئات المجرّدة

يمكن أيضًا استخدام الفئات المجرّدة لتحقيق تعدد الأشكال. تتجاوز الفئات الابنة الأساليب المجرّدة لتوفير تطبيقات محددة. مثال:

نقطة مهمة: تفرض الفئات المجرّدة بنية أساسية مع السماح بتعدد الأشكال.

<?php
  abstract class Vehicle {
    abstract public function start();
  }

  class Car extends Vehicle {
    public function start() {
      echo "Car engine starts.<br>";
    }
  }

  class Motorcycle extends Vehicle {
    public function start() {
      echo "Motorcycle engine starts.<br>";
    }
  }

  $vehicles = [new Car(), new Motorcycle()];

  foreach ($vehicles as $vehicle) {
    $vehicle->start();
  }
?>

تطبيقات واقعية

تطبيقات واقعية

يُستخدم تعدد الأشكال على نطاق واسع في تطوير البرمجيات:

  • معالجة المدفوعات: تنفذ طرق الدفع المختلفة (بطاقة ائتمان، PayPal) الواجهة نفسها.
  • تطوير الألعاب: تتجاوز الأنواع المختلفة من الشخصيات الأسلوب نفسه لتوفير سلوك فريد.
  • أنظمة التسجيل: تستخدم مسجلات متعددة (ملف، قاعدة بيانات) الواجهة نفسها.

نقطة مهمة: يساعد تعدد الأشكال على إنشاء أنظمة قابلة للتوسع وسهلة الصيانة.

التحديات المرتبطة بتعدد الأشكال

التحديات المرتبطة بتعدد الأشكال

على الرغم من قوة تعدد الأشكال، فإنه ينطوي على بعض التحديات:

  • قد يزيد التعقيد إذا لم يُطبّق بشكل صحيح.
  • يتطلب تخطيطًا دقيقًا للتسلسلات الهرمية للفئات والواجهات.
  • قد يؤدي إلى أخطاء وقت التشغيل إذا لم تُنفذ الأساليب المتجاوزة بشكل صحيح.

نصيحة: اختبر دائمًا سلوك تعدد الأشكال بشكل شامل لضمان صحته.

أحسنت!

أحسنت!

تهانينا! لقد تعلمت عن تعدد الأشكال، بما في ذلك تطبيقه باستخدام تجاوز الأساليب والواجهات والفئات المجرّدة. يُعد تعدد الأشكال أداة قوية لإنشاء شيفرة مرنة وقابلة لإعادة الاستخدام. في الدرس التالي، سنتعمق في العمل مع الفئات المجرّدة بمزيد من التفصيل. واصل البرمجة!

تعدد الأشكال — رسم توضيحي 10

الأسئلة الشائعة

هل درس «تعدد الأشكال» مجاني؟

نعم — نص درس «تعدد الأشكال» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 5 دروس في المجموع.

ماذا ستتعلم في «تعدد الأشكال»؟

استكشف تجاوز الأساليب والسلوك الديناميكي في البرمجة كائنية التوجه تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟

لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 5 من أصل 5.

كم من الوقت يستغرق درس «تعدد الأشكال»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟

نعم. كل درس في PHP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مقدمة إلى البرمجة كائنية التوجه في PHP
  2. تعريف الفئات والكائنات
  3. الوراثة
  4. التغليف ومعدّلات الوصول
  5. تعدد الأشكال
← العودة إلى PHP Academy