إنشاء واستخدام الكلاس الثابتة (Static Classes) في PHP
تمت الكتابة بواسطة: عبد الحكيم
تارخ آخر تحديث: 01 سبتمبر 2024محتوى المقال
- ما هي الخصائص والدوال الثابتة؟
- إنشاء الخصائص والدوال الثابتة
- متى نستخدم الخصائص والدوال الثابتة؟
- الفرق بين الخصائص والدوال الثابتة والعادية
- الخلاصة
الكلاس الثابتة (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
، يمكنك إنشاء كلاس يحتوي على خصائص ودوال ثابتة، والوصول إليها بسهولة باستخدام اسم الكلاس. هذا يجعل الكود أكثر تنظيماً وكفاءة، خاصةً في السيناريوهات التي تتطلب استخدام قيم أو وظائف مشتركة.
طور مهاراتك: مقالات يجب قراءتها في البرمجة
- مقدمة إلى قواعد البيانات في PHP
- كيفية فرز المصفوفات في PHP
- كيفية دمج المصفوفات في PHP
- كيفية تحويل المصفوفات إلى سلاسل نصية والعكس
- التعامل مع المصفوفات الترابطية في PHP
- استخدام المصفوفات كقوائم وقواميس في PHP
- مقدمة إلى البرمجة الكائنية التوجه في PHP
- كيفية إنشاء كلاس (Class) في PHP
- إنشاء كائن (Object) من كلاس في PHP
- استخدام الخصائص والطرق في الكائنات في PHP