دروس PHP

PHP الرئيسية مقدمة PHP تثبيت PHP بناء جملة PHP تعليقات PHP متغيرات PHP PHP صدى / طباعة أنواع بيانات PHP سلاسل PHP أرقام PHP PHP الرياضيات ثوابت PHP مشغلي PHP PHP إذا ... آخر ... Elseif مفتاح PHP حلقات PHP وظائف PHP مصفوفات PHP PHP Superglobals PHP RegEx

نماذج PHP

معالجة نموذج PHP التحقق من صحة نموذج PHP نموذج PHP مطلوب نموذج PHP URL / البريد الإلكتروني اكتمل نموذج PHP

PHP متقدم

تاريخ ووقت PHP تضمين PHP معالجة ملفات PHP فتح / قراءة ملف PHP إنشاء / كتابة ملف PHP تحميل ملف PHP ملفات تعريف الارتباط PHP جلسات PHP مرشحات PHP مرشحات PHP متقدم وظائف رد الاتصال PHP PHP JSON استثناءات PHP

PHP OOP

PHP ما هو OOP فئات / كائنات PHP منشئ PHP مدمر PHP معدِّلات الوصول إلى PHP الوراثة PHP ثوابت PHP فئات مجردة PHP واجهات PHP سمات PHP طرق PHP الثابتة خصائص PHP الثابتة مساحات أسماء PHP PHP تكرارات

قاعدة بيانات MySQL

قاعدة بيانات MySQL اتصال MySQL إنشاء قاعدة بيانات MySQL إنشاء جدول MySQL MySQL إدراج البيانات MySQL الحصول على آخر معرف إدراج عدة MySQL تم تجهيز MySQL MySQL حدد البيانات MySQL أين ترتيب MySQL حسب MySQL حذف البيانات تحديث بيانات MySQL بيانات MySQL المحدودة

لغة PHP XML

موزعي PHP XML محلل PHP SimpleXML PHP SimpleXML - احصل على PHP XML Expat PHP XML DOM

PHP - أجاكس

مقدمة أجاكس أجاكس بي إتش بي قاعدة بيانات أجاكس AJAX XML بحث أجاكس لايف استطلاع أجاكس

أمثلة PHP

أمثلة PHP مترجم PHP اختبار PHP تمارين PHP شهادة PHP

مرجع PHP

نظرة عامة على PHP صفيف PHP تقويم PHP تاريخ PHP دليل PHP خطأ PHP استثناء PHP نظام ملفات PHP مرشح PHP PHP FTP PHP JSON كلمات PHP PHP Libxml PHP Mail PHP الرياضيات متفرقات PHP PHP MySQLi شبكة PHP التحكم في إخراج PHP PHP RegEx PHP SimpleXML PHP ستريم سلسلة PHP معالجة متغيرة PHP محلل PHP XML PHP Zip المناطق الزمنية PHP

PHP OOP - السمات


PHP - ما هي السمات؟

تدعم PHP الوراثة الفردية فقط: يمكن للفئة الفرعية أن ترث من والد واحد فقط.

لذا ، ماذا لو احتاج الفصل إلى وراثة سلوكيات متعددة؟ سمات OOP تحل هذه المشكلة.

تُستخدم السمات للإعلان عن الأساليب التي يمكن استخدامها في فئات متعددة. يمكن أن تحتوي السمات على طرق وأساليب مجردة يمكن استخدامها في فئات متعددة ، ويمكن أن تحتوي هذه الطرق على أي معدل وصول (عام أو خاص أو محمي).

يتم الإعلان عن السمات trait بالكلمة الرئيسية:

بناء الجملة

<?php
trait TraitName {
  // some code...
}
?>

لاستخدام سمة في الفصل ، استخدم use الكلمة الأساسية:

بناء الجملة

<?php
class MyClass {
  use TraitName;
}
?>

لنلقي نظرة على مثال:

مثال

<?php
trait message1 {
public function msg1() {
    echo "OOP is fun! ";
  }
}

class Welcome {
  use message1;
}

$obj = new Welcome();
$obj->msg1();
?>

شرح المثال

هنا ، نعلن سمة واحدة: message1. ثم نقوم بإنشاء فصل دراسي: مرحبًا. يستخدم الفصل السمة ، وستكون جميع الطرق الموجودة في السمة متاحة في الفصل.

إذا احتاجت الفئات الأخرى إلى استخدام وظيفة msg1 () ، فما عليك سوى استخدام سمة message1 في تلك الفئات. هذا يقلل من تكرار الكود ، لأنه لا توجد حاجة لإعادة الإعلان عن نفس الطريقة مرارًا وتكرارًا.



PHP - استخدام سمات متعددة

لنلق نظرة على مثال آخر:

مثال

<?php
trait message1 {
  public function msg1() {
    echo "OOP is fun! ";
  }
}

trait message2 {
  public function msg2() {
    echo "OOP reduces code duplication!";
  }
}

class Welcome {
  use message1;
}

class Welcome2 {
  use message1, message2;
}

$obj = new Welcome();
$obj->msg1();
echo "<br>";

$obj2 = new Welcome2();
$obj2->msg1();
$obj2->msg2();
?>

شرح المثال

هنا ، نعلن عن سمتين: message1 و message2. ثم نقوم بإنشاء فصلين: Welcome and Welcome2. تستخدم الفئة الأولى (الترحيب) سمة message1 ، بينما تستخدم الفئة الثانية (Welcome2) سمات message1 و message2 (يتم فصل السمات المتعددة بفاصلة).