34- شرح تعريف OOP في PHP – الثاني

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

1. PHP Classes/Objects

– **Classes**: هي القوالب التي تُستخدم لإنشاء الكائنات (objects). تحتوي على خصائص (properties) وطرق (methods).
– **Objects**: هي مثيلات من الفصول (classes). يتم إنشاء الكائن باستخدام الكلمة المفتاحية `new`.

class Car {
    public $color;
    public $model;

    public function __construct($color, $model) {
        $this->color = $color;
        $this->model = $model;
    }

    public function message() {
        return "My car is a " . $this->color . " " . $this->model . "!";
    }
}

$myCar = new Car("red", "Toyota");
echo $myCar->message();

2. PHP Constructor

– **Constructor**: هو دالة خاصة داخل الفصل تُستدعى تلقائيًا عند إنشاء كائن جديد. تُستخدم لتهيئة الخصائص.

class Car {
    public $color;
    public $model;

    public function __construct($color, $model) {
        $this->color = $color;
        $this->model = $model;
    }
}

3. PHP Destructor

– **Destructor**: هو دالة خاصة تُستدعى تلقائيًا عند تدمير كائن. تُستخدم لتنظيف الموارد.

class Car {
    public function __destruct() {
        echo "The car is being destroyed.";
    }
}

4. PHP Access Modifiers

– **Modifiers**: تُحدد مستوى الوصول إلى خصائص وطرق الكائن:
– `public`: يمكن الوصول إليه من أي [شركة برمجة مصرية] مكان.
– `protected`: يمكن الوصول إليه داخل الفصل والفصول المشتقة.
– `private`: يمكن الوصول إليه فقط داخل نفس الفصل.

class Car {
    public $color; // Public property
    protected $model; // Protected property
    private $engine; // Private property
}

5. PHP Inheritance

– **Inheritance**: يسمح لفصل (class) باكتساب خصائص وطرق فصل آخر.

class Vehicle {
    public $brand;
    
    public function honk() {
        echo "Beep!";
    }
}

class Car extends Vehicle {
    public $model;
}

6. PHP Constants

– **Constants**: تُعرّف باستخدام الكلمة `const` ولا تتغير قيمتها.

class Car {
    const WHEELS = 4;
}

7. PHP Abstract Classes

– **Abstract Classes**: لا يمكن إنشاء كائنات منها وتحتوي على دوال مجردة يجب تعريفها في الفصول المتفرعة.

abstract class Car {
    abstract public function drive();
}

8. PHP Interfaces

– **Interfaces**: تحدد دوال يجب تنفيذها في الفصول التي تطبق الواجهة.

interface Vehicle {
    public function drive();
}

class Car implements Vehicle {
    public function drive() {
        echo "Driving a car";
    }
}

9. PHP Traits

– **Traits**: تُستخدم لإعادة استخدام أسطر الكود في فصول متعددة.

trait EngineTrait {
    public function startEngine() {
        echo "Engine started";
    }
}

class Car {
    use EngineTrait;
}

10. PHP Static Methods

– **Static Methods**: يمكن استدعاؤها بدون إنشاء كائن من الفصل.

class Calculator {
    public static function add($a, $b) {
        return $a + $b;
    }
}

echo Calculator::add(1, 2);

11. PHP Static Properties

– **Static Properties**: خاصية ترتبط بالفصل ذاته وليس بالكائنات.

class Calculator {
    public static $pi = 3.14;
}

echo Calculator::$pi;

12. PHP Namespaces

– **Namespaces**: تُستخدم لتنظيم الكود وتجنب التعارض بين الأسماء.

namespace Vehicles;

class Car {
    // Class code
}

13. PHP Iterables

– **Iterables**: أي شيء يمكن تكراره باستخدام `foreach`.

function getIterable(): iterable {
    return [1, 2, 3];
}

foreach (getIterable() as $value) {
    echo $value;
}

آمل [شركة برمجة مصرية] أن يكون هذا الشرح قد غطى النقاط التي كانت ناقصة في المقالة التي لديك. إذا كان لديك أي سؤال آخر، فلا تتردد في طرحه!