الثوابت في PHP — شرح Constants مع الكود والنتيجة
PHP بالعربي: في المشاريع الحقيقية نحتاج أحياناً قيماً ثابتة لا يجب أن تتغير، مثل اسم الموقع، رابط API، أو نسخة التطبيق. هنا نستخدم الثوابت (Constants) بدلاً من المتغيرات.
ما هي الثوابت (Constants) في PHP؟
ثوابت PHP هي قيم نعرّفها مرة واحدة ثم تبقى ثابتة طوال تنفيذ السكربت. أي محاولة لتعديلها بعد التعريف تعتبر خطأ.
الفرق بين الثابت والمتغير في PHP
| العنصر | المتغير | الثابت |
|---|---|---|
| علامة البداية | $name |
SITE_NAME بدون $ |
| إمكانية تغيير القيمة | نعم | لا |
| الاستخدام الشائع | قيم تتغير أثناء التشغيل | إعدادات ثابتة لا تتغير |
كيف نعرّف الثابت في PHP؟
ثوابت PHP تُعرّف غالباً بالدالة define():
define("CONSTANT_NAME", "value");
مثال 1: تعريف ثابت وطباعة قيمته
الكود:
<?php
define("SITE_NAME", "DevArabi");
echo SITE_NAME;
?>
ما يظهر في المتصفح:
DevArabi
شرح PHP بالعربي: بعد تعريف الثابت، نستخدم اسمه مباشرة بدون $.
مثال 2: استخدام الثابت داخل جملة
الكود:
<?php
define("APP_VERSION", "1.0.0");
echo "إصدار التطبيق: " . APP_VERSION;
?>
ما يظهر في المتصفح:
إصدار التطبيق: 1.0.0
شرح ثوابت PHP: الثابت يعمل مثل قيمة جاهزة يمكن إدراجها في أي جزء من النص.
هل يمكن تغيير قيمة الثابت في PHP؟
الكود:
<?php
define("SITE_NAME", "DevArabi");
// SITE_NAME = "NewName"; // خطأ
?>
ما يحدث:
سيظهر خطأ لأن الثابت لا يمكن إعادة تعيينه.
أفضل ممارسات كتابة الثوابت في PHP
- ثوابت PHP: اكتب الاسم بأحرف كبيرة مثل
DB_HOST. - ثوابت PHP: اختر اسماً واضحاً يصف المعنى بدقة.
- ثوابت PHP: ضع القيم الثابتة العامة في ملف إعدادات مركزي.
- ثوابت PHP: لا تستخدم الثوابت لقيم يجب أن تتغير لكل مستخدم.
أخطاء شائعة عند استخدام Constants
- كتابة الثابت مع
$وهذا غير صحيح. - إعادة تعريف نفس الثابت مرة ثانية بالاسم نفسه.
- استخدام أسماء عامة وغامضة مثل
VALUE. - الخلط بين الثابت والمتغير عند القراءة السريعة للكود.
تمرين سريع على الثوابت مع الكود والإخراج
- عرّف ثابتاً باسم
COUNTRYوقيمتهMorocco. - اطبع:
بلد السيرفر: Morocco. - جرّب كتابة سطر يعيد تعيين الثابت ولاحظ رسالة الخطأ.
الأسئلة الشائعة — FAQ
ما الفرق بين الثابت والمتغير في PHP؟
المتغير قابل للتغيير ويبدأ بـ $، بينما الثابت لا يتغير بعد تعريفه ويكتب بدون $.
كيف أعرّف ثابتاً في PHP؟
باستخدام define("NAME", "value"); ثم استعمال الاسم مباشرة.
هل يمكن تعديل قيمة الثابت بعد تعريفه؟
لا. محاولة التعديل تسبب خطأ.
لماذا تكتب أسماء الثوابت بأحرف كبيرة؟
لأنها ممارسة شائعة تحسن وضوح الكود وتقلل الالتباس مع المتغيرات.
بعد فهم الثوابت، انتقل إلى الدرس القادم: العمليات الحسابية في PHP.