إنشاء واستخدام الكلاس الثابتة (Static Classes) في PHP

تمت الكتابة بواسطة: عبد الحكيم

تارخ آخر تحديث: 19 ديسمبر 2024

محتوى المقال

إنشاء واستخدام الكلاس الثابتة (Static Classes) في PHP

الكلاس الثابتة (Static Classes) في PHP ليست نوعًا خاصًا من الكلاسات كما هو الحال في بعض لغات البرمجة الأخرى مثل C#، ولكن يمكن تحقيق نفس المفهوم عن طريق استخدام الخصائص والدوال الثابتة داخل الكلاس. في هذا المقال، سنتعرف على كيفية إنشاء واستخدام الخصائص والدوال الثابتة في PHP، وأمثلة عملية على كيفية تطبيقها.

ما هي الخصائص والدوال الثابتة؟

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

إنشاء الخصائص والدوال الثابتة

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

مثال على كلاس يحتوي على خصائص ودوال ثابتة

<?php
class MathHelper {
    public static $pi = 3.14159;

    public static function circleArea($radius) {
        return self::$pi * $radius * $radius;
    }
}

// الوصول إلى الخاصية الثابتة
echo MathHelper::$pi; // سيعرض 3.14159

// استدعاء الدالة الثابتة
echo MathHelper::circleArea(5); // سيعرض مساحة الدائرة
?>

في هذا المثال، أنشأنا كلاس يسمى MathHelper يحتوي على خاصية ثابتة $pi ودالة ثابتة circleArea(). الخاصية $pi تحتوي على قيمة الثابت الرياضي "π"، بينما تقوم الدالة circleArea() بحساب مساحة الدائرة باستخدام نصف القطر.

متى نستخدم الخصائص والدوال الثابتة؟

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

  • لتخزين قيم ثابتة مثل الثوابت الرياضية.
  • لإنشاء دوال مساعدة يمكن استخدامها بدون الحاجة إلى إنشاء كائن من الكلاس.
  • لتتبع عدد الكائنات التي تم إنشاؤها من كلاس معين.

مثال على تتبع عدد الكائنات باستخدام خاصية ثابتة

<?php
class Counter {
    public static $count = 0;

    public function __construct() {
        self::$count++;
    }
}

// إنشاء بعض الكائنات
$a = new Counter();
$b = new Counter();
$c = new Counter();

// عرض عدد الكائنات
echo Counter::$count; // سيعرض 3
?>

في هذا المثال، استخدمنا خاصية ثابتة $count داخل كلاس Counter لتتبع عدد الكائنات التي تم إنشاؤها من هذا الكلاس. عند إنشاء كائن جديد، تزداد قيمة $count بمقدار واحد، مما يسمح لنا بمعرفة عدد الكائنات التي تم إنشاؤها.

الفرق بين الخصائص والدوال الثابتة والعادية

الخصائص والدوال الثابتة ترتبط بالكلاس نفسه، بينما ترتبط الخصائص والدوال العادية بالكائنات الفردية التي يتم إنشاؤها من الكلاس. على سبيل المثال:

  • لا يمكن الوصول إلى الخصائص والدوال العادية إلا من خلال كائن تم إنشاؤه من الكلاس.
  • يمكن الوصول إلى الخصائص والدوال الثابتة دون الحاجة إلى إنشاء كائن.
  • يمكن استخدام الكلمة self للإشارة إلى الخصائص والدوال الثابتة داخل الكلاس، بينما يتم استخدام this$ للإشارة إلى الخصائص والدوال العادية.

الخلاصة

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

طور مهاراتك: مقالات يجب قراءتها في البرمجة