19-03-15, 01:50 PM
السلام عليكم ورحمة الله وبركاتة
اليوم اقدم مجموعة معلومات عن الثوابت Constants وهي :-
1 . ما هي الثوابت؟
2 . طريقة كتابة الثوابت خارج داخل الكلاس.
3 . انواع قيم الثوابت.
4 . قراءة الثوابت.
5 . فائدة دالة defined.
6 . فائدة دالة get_defined_constants.
7 . الثوابت السحرية Magic Constants.
ما هي الثوابت؟ :-
إن الثوابت عبارة عن قيم يتم تعريفها وغير قابله للتغيير.
مثال ::
نحتاج (ط PI) لحساب محيط الدائرة وهي قيمة ثابته لا تتغير تساوي بالتقريب 3.14.
او داخل برمجة ما تحتوى على اتصال بقاعدة بيانات فإن بيانات الاتصال يفضل استخدامها كثوابت ان كانت ستستخدم في شئ اخر لانها لن تتغير.
طريقة كتابة الثوابت :-
عامة يكون الثابت من قسمين :
1 . اسم الثابت المستخدم لاستدعائه فيما بعد.
2 . قيمة الثابت ولها انواع معينه سنوضحها في النقطة رقم 3.
يوجد طريقتان لكتابة الثوابت::
1 . طريقة شائعة تكون خارج Class.
PHP كود :
define("NAME","Moamen");
2 . طريقة داخل Class.
PHP كود :
const NAME = "Moamen";
اشهر فرق بين define و const :
1 . define تعمل في run time .
2 . const تعمل في compile time .
ملاحظات عن اسم الثابت :
1 . يبدأ بحرف من الحروف الانجليزية او علامة underscore _ .
2 . لا يمكن أن يبدأ بارقام .
3 . لا يمكن أن يحتوى على احرف غير الانجليزية.
أنواع قيم الثوابت :-
1 . ما قبل PHP 5.6.
يقبل فقط القيم الفردية مثل Boolean و Integer و Float و String .
2 . ما بعد PHP 5.6.
بالاضافة للقيم الفردية تم اضافة Array و Resource ولكن يجب توخي الحذر لانه يمكن ان يحدث خطأ في النتائج .
قراءة الثوابت :-
لو افترضنا ان اسم الثابت NAME فلدينا طريقتنا لاستدعاء قيمة الثابت وهما
PHP كود :
define("NAME","Moamen");
echo NAME; // الطريقة الاولى والشائعة
echo constant("NAME"); //الطريقة الثانية
فائدة دالة defined :-
هي دالة تعمل على التأكد من وجود الثابت ونتيجة الدالة تكون Boolean
فاذا كان اسم الثابت موجود من قبل فتكون النتيجة True وان لم يكن موجود فالنتيجة False
مثال:
PHP كود :
define("NAME","Moamen");
if(defined("NAME")){ // استخدام الدالة defined
echo "Found"; // True ان كانت النتيجة
}else{
echo "Not Found"; // Falseان كانت النتيجة
}
فائدة دالة get_defined_constants :-
هذه الدالة تعمل على جمع كل الثوابت الموجوده واخراجها في صورة مصفوفه
ويوجد parameter واحد فقط لهذه الدالة يدعى categorize ومن النوع boolean وله قيمة افتراضيه هي false
و True تعني ان الثوابت داخل المصفوفه ستكون مقسمه الى أقسام
ويمكن عرض تلك المصفوفة باستخدام دالة print_r
مثال:
PHP كود :
define("NAME","Moamen");
define("AGE","22");
print_r(get_defined_constants(true)); // عرض الثوابت داخل مصفوفة مقسمة لأقسام
الثوابت السحرية Magic Constants :
هي عبارة عن ثوابت موجودة فعلياً داخل PHP لتسهيل بعض الاعمال وعلى سبيل المثال منها
__LINE__ : السطر الحالي داخل الملف .
__FILE__ : مسار الملف.
__FUNCTION__ : اسم الدالة.
__CLASS__ : اسم Class.
__NAMESPACE__ : اسم Namespace الحالي.
تحياتي
اخوكم/ مؤمن التوني