🚀 إتقان الثوابت داخل الكلاسات (Class Constants) في PHP
بعد أن تعلمنا كيف ننشئ الكلاسات ونعرف الخصائص (Properties)، سننتقل اليوم إلى مفهوم مهم جداً وهو ثوابت الكلاس (Class Constants).
في البرمجة، هناك قيم لا نريدها أن تتغير أبداً طوال فترة تشغيل البرنامج. على سبيل المثال: قيمة ضريبة المبيعات، أو اسم التطبيق، أو سرعة الضوء. هنا يأتي دور "الثوابت".
❓ ما هي ثوابت الكلاس (Class Constants)؟ 🤔
الثابت (Constant) هو متغير خاص يتم تعريفه داخل الكلاس، ولكنه يختلف عن الخصائص العادية في نقطتين أساسيتين:
- القيمة ثابتة: بمجرد تحديد قيمة الثابت، لا يمكن تغييرها أو تعديلها أثناء تشغيل الكود.
- مرتبطة بالكلاس نفسه: الثابت لا يتبع "كائن" (Object) معين، بل يتبع "الكلاس" ككل.
💡 ملاحظة هامة: لتعريف الثابت داخل الكلاس، نستخدم الكلمة المحجوزة const بدلاً من public أو private أو var.
🛠️ كيف نقوم بتعريف الثابت؟
لتعريف ثابت داخل الكلاس، نكتب كلمة const متبوعة باسم الثابت ثم القيمة.
قاعدة ذهبية في التسمية: جرى العرف بين المبرمجين أن تُكتب أسماء الثوابت دائماً بأحرف كبيرة (UPPERCASE) لتمييزها عن المتغيرات العادية.
لنلقِ نظرة على هذا المثال البسيط:
<?php
class Circle {
// تعريف ثابت لقيمة Pi
const PI = 3.14;
}
?>
في المثال أعلاه، قمنا بإنشاء كلاس اسمه Circle وبداخله ثابت اسمه PI وقيمته 3.14. هذه القيمة لن تتغير أبداً مهما حدث في البرنامج.
🔍 كيف نصل إلى الثابت ونستخدمه؟
بما أن الثابت مرتبط بالكلاس وليس بالكائن (Object)، فإننا لا نستخدم السهم -> للوصول إليه. بدلاً من ذلك، نستخدم ما يسمى بـ Scope Resolution Operator وهو الرمز :: (النقطتان الرأسيتان المزدوجتان).
إليك الطريقة خطوة بخطوة:
- نكتب اسم الكلاس.
- نضع الرمز
::. - نكتب اسم الثابت.
شاهد هذا المثال التطبيقي:
<?php
class Store {
// تعريف ثابت لنسبة الضريبة
const TAX_RATE = 0.15;
}
// الوصول إلى الثابت بدون الحاجة لإنشاء Object
echo "The tax rate is: " . Store::TAX_RATE;
// المخرجات ستكون: The tax rate is: 0.15
?>
⚠️ الفرق بين الخصائص (Properties) والثوابت (Constants)
لكي لا تخلط بينهما، إليك هذا الجدول البسيط:
| وجه المقارنة | الخصائص (Properties) | الثوابت (Constants) |
|---|---|---|
| الكلمة المستخدمة | public, private, protected |
const |
| تغيير القيمة | يمكن تغيير قيمتها أثناء التشغيل | لا يمكن تغيير قيمتها أبداً |
| طريقة الوصول | نستخدم السهم -> (بعد إنشاء Object) |
نستخدم الرمز :: (مباشرة من الكلاس) |
| تسمية المتغير | تبدأ بعلامة $ (مثل $price) |
لا تبدأ بعلامة $ (مثل PRICE) |
🌟 مثال شامل يجمع كل ما تعلمناه
دعونا نطبق ما تعلمناه في مثال واقعي بسيط لشركة شحن:
<?php
class ShippingCompany {
// ثابت يمثل اسم الشركة
const COMPANY_NAME = "FastShip Express";
// ثابت يمثل تكلفة الشحن الأساسية
const BASE_FEE = 10.0;
public $packageWeight;
// دالة بسيطة لحساب التكلفة
public function calculateCost() {
// الوصول إلى الثابت من داخل الكلاس باستخدام self::
return self::BASE_FEE + ($this->packageWeight * 2);
}
}
// استخدام الثوابت من خارج الكلاس
echo "Welcome to " . ShippingCompany::COMPANY_NAME;
echo "<br>";
echo "Base Shipping Fee: " . ShippingCompany::BASE_FEE;
?>
شرح سريع للكود:
- استخدمنا
ShippingCompany::COMPANY_NAMEللوصول للثابت من الخارج. - استخدمنا
self::BASE_FEEللوصول للثابت من داخل دالة في نفس الكلاس (كلمةselfتعني "هذا الكلاس").
🎓 ملخص الدرس
- الثوابت تُعرف بكلمة
const. - قيمتها لا تتغير أبداً بعد التعريف.
- يتم الوصول إليها باستخدام الرمز
::. - تُكتب أسماؤها عادةً بأحرف كبيرة.
🎓 اختبر معلوماتك
التعليقات
شاركنا رأيك أو أسئلتك حول هذا المقال