متطلبات قبل البدء :
- مراجعة جميع الدروس السابقة , حيث ان هذا الدرس يجمع كل الدروس
اهداف الدرس :
- الداله include_once والداله require_once
- المتغير $PHP_SELF
- العباره global
- العباره static
- تطبيق شامل
الداله include_once و الداله require_once :تعلمنا في الدرس الحادي عشر ان نستخدم الدالتين ( include ) والداله (
require ) , ونأتي الان الى جزء منها وهي الدالتين include_once و
require_once , طريقة عمل هاتين الدالتين نفس عمل الدالتين الاول تماما,
نفس طريقة الكتابه ( مطابقه 100 % 100 ) , ولكن هناك فرق صغير بينهما , كما
تدل الكلمه ( once ) ومعناها ( مره واحده فقط ) , اننا نستخدم هذه العباره
عندما نريد ان نقوم بإدراج ملف مره واحده فقط. فإذا استخدمنا هذه الداله
وقمنا بإدراج ملف معين , فلن يتم ادراجه مره اخرى. بعباره اخرى , لو لدينا
برنامج صغير وادرجنا داخل هذا البرنامج الملف ( arccn.php ) بإستخدام
العباره (
include_once ) , فلن يتم ادراجه مره اخرى بعكس العباره include. وعندما
تقرأ في دليل استخدام للغه فسوف تجد ان هذا هو الفرق الوحيد, وسبب وجود
دالتين هو للتأكد من عدم وجود تضارب بين اسماء الدوال , او المتغيرات في
البرامج.
المتغير $PHP_SELFالمتغير $PHP_SELF هو معرف من قبل اللغه نفسها , ولا يمكنك ان تقوم
بتعريف متغير بهذا الاسم, يستخدم هذا المتغير لمعرفة اسم الملف الذي يقام
تنفيذه حاليا. فمثلا لو اردنا في نموذج ان نذهب الى نفس الصفحه , فسوف
نستخدم المتغير $PHP_SELF بدل
كتابة اسم الملف. هذا هو استخدام هذا المتغير وسوف نتطرق له في احد برامجنا
التطبيقية.
العباره global :لنقل ان لدينا متغير, وهذا المتغير نريد ان نستخدمه في عدة ملفات وفي
عدة اماكن. من المحتمل انني نسيت ان اخبرك ان المتغير مكانه محدود واعني
بذلك , لو عرفنا متغير في ملف معين , فلن يكون هذا المتغير منشىء في الملف
الاخر, فيمكننا انشاء مره اخرى واستخدامه بطريقه مختلفه. ولكن في حاله من
الحالات نريد ان يكون لدينا متغير ثابت في جميع الصفحات وتذكر ان العباره
defined ايضا لن تقوم بعمل هذا الشي, لنقم تحديد نظرتنا , لو عرفنا متغير
داخل داله, فلن نستطيع استعمال هذا المتغير خارج الداله. لنأخذ مثال يبين
لنا الطريقه. افتح محرر الاكواد واكتب التالي:
لاحظ ان المتغير ( name ) لم يتم طباعته, لانها معرف خارج الداله , وليس
له علاقه بالمتغير الموجود داخل الدالة ابدا. ونفس الشيء للمتغير (
$lastName ) فلن يتم طباعته في السطر رقم 15 , لانه تم تعريفه داخل الداله.
ولكن يمكننا ان نلغي هذا كله , ونجعل متغير يستخدم في جميع الصفحات,
بإستخدام العباره global, ويتم كتابتها بالطريقه التاليه:
1 – لاحظ هنا اننا قمنا بتعريف المتغير داخل الداله, ومن الطبيعي انه لن
يتم طباعته خارجها حتى لو كان يحتوي على قيمه, ولكن مع استخدامنا للعباره
global ,استطعنا من عمل ذلك.
ويجب عليك ان تلاحظ انه يجب ان تجعل المتغير ( عام ) == ( global )
ثم بعد ذلك تقوم بتعيين قيمه بداخله ثم الطباعه ان اردت.
2 – قمنا بطباعة المتغير , ولاحظ انه قام بالطباعه هنا.
العباره static :معنى كلمة static في اللغه الانجليزيه هو ( ثابت ). فعند استخدامنا لهذه
العباره قبل المتغير, نضمن ان هذا المتغير سيقوم بالاحتفاظ بالقيمه
الموجوده بداخله دائما ( مهما حصل ) الى اخر ما وصلنا , ويستخدم فقط داخل
الدوال ( لا تنسى ذلك ) لنلاحظ المثال التالي:
هنا نقوم بطباعة المتغير a ثم نقوم بزيادته واحد , اليس ذلك صحيح ؟ ولكن
لكما نقوم بمناداة الداله ( test ) مره اخرى , يتم ارجاع قيمة المتغير a
الى ( 0 ) , مع اننا نقوم بزيادة المتغير في كل مره نقوم بالطباعه. وسيكون
ناتج البرنامج هو التالي:
الان لنقم بإستخدام العباره static ونرى الاختلاف , اكتب التالي قبل المتغير a :
وعند تشغيل هذا الكود سوف يكون الناتج ايها الزائر الكريم بالطريقه التاليه:
ما نلاحظه هنا , ان في كل مره ننادي فيها الداله , في اخرها نقوم بزيادة
المتغير بالعدد واحد , وعند منادة الداله مره اخرى , سوف يكمل من اخر عدد
وصل اليه المتغير. وهذه هي فائدة العباره static في اللغه PHP.
تطبيق شامل :ترددت كثيرا في اختيار برنامج نقوم بتطبيقه , حيث اني اريد ان اقوم بشمل
جميع ما تعلمناه في الدروس السابقه, وعند انتهاء التفكير قررت ان يكون
تطبيقنا ( اختبار مصغر ). وان شاء الله يكون شاملا لجميع ما قمنا بتعمله,
ولا تغضب عندما نقوم بنسيان احد النقاط الصغيره, فتأكد انه في تطبيق اخر
سنتطرق لها.
فكرة عمل البرنامج :
اولا يقوم المستخدم بإدخال معلوماته الشخصيه بعد ذلك نعرض له عدد من
الاسئله , ثم في النهايه نقوم بعرض النتيجه, انظر الى الصوره التاليه :
لنقم بالتفكير في متطلباتنا , وماهي الملفات التي نحتاجها :
الوصف | الملف |
هنا نضع جميع دوال التنسيق للصفحات , مثل رأس الصفحه وذيلها , نماذج ادخال المعلومات وغيرها ونضعه داخل مجلد اسمه include | output.php |
هنا نقوم بوضع دوال الاسئله والاجوبه , لكي ننتهي من عناء اعادة كتابة الكود ونضعه داخل المجلد include | quiz_fun.php |
هنا يضع المستخدم معلوماته الشخصيه ويكون في المجلد الرئيسي | info.php |
هنا نقوم بعرض صفحة الاسئله ويكون في المجلد الرئيسي | quiz1.php |
صفحة النتائج ويكون في المجلد الرئيسي | result.php |
لنبدأ الان بكتابة البرنامج ونحاول ان نفهمه خطوه خطوه , افتح محرر الاكواد واكتب التالي ثم احفظه في ملف اسمه output.php :
اضغط على الصوره لتكبيرها
قمنا هنا بعمل رأس الصفحه وذيل الصفحه , ولو تلاحظ اننا استخدمنا الدوال
لعمل ذلك , بحيث ان في كل صفحه لا نكرر كتابة الرأس والذيل وانما فقط نقوم
بإدراج الملفات , وهي تقوم بالباقي. ولاحظ اننا ايضا استخدمنا مدخلات
للدوال , بحيث يمكننا تغيير عنوان الصفحه وغيرها في اي وقت نريد. الان في
صفحتنا ادخال المعلومات , نريد ان نقوم بإنشاء نموذج ليتمكن المستخدم من
ادخال معلوماته الشخصيه, ليتمكن من الدخول الى الاختبار , اذن هو نموذج ,
سنضعه في ملف output.php , اذن ارجع الى الملف واكتب التالي:
اضغط على الصوره لتكبيرها
لاحظ هنا اننا جعلنا النموذج يذهب الى الصفحه quiz.php , ايه انه ضروري
ان يقوم المستخدم بكتابة معلوماته الشخصيه قبل دخول الاختبار. الان لنقم
بعمل صفحة تسجيل المعلومات. الان انشئ ملف جديد اسمه info.php, واكتب
بداخله الكود التالي:
اضغط على الصوره لتكبيرها
في بداية هذا الكود قمنا بإدراج الملف output.php لان بداخله الاكواد
التي نحتاجها الى تشغيل الصفحه. ولاحظ اننا استخدمنا الدوال فقط, ولم نقم
بإستخدام غيرها. الان نحتاج ان نتأكد هل المستخدم ادخل جميع البيانات ام لا
؟ لاننا قلنا انه اذا لم يدخل جميع البيانات فلا يسمح له بأخد الاختبار.
اذن قم بإنشاء ملف اسمه quiz_fun.php واكتب بداخله الداله التاليه :
هنا نقوم بالتحقق من مدخلات النموذج , اذا كانت جميعها مدخله , فنرجع
القيمه true , واذا كانت هناك مدخلات ناقصه فسوف نرجع القيمه false. الان
انشئ ملف اسمه quiz.php واكتب بداخله التالي:
الكود واضح وبسيط هنا , ادرجنا الملفات في البدايه, ثم نقوم بإستخدام
دالة التحقق من المدخلات, اذا ارجعت القيمه true نبدأ الاختبار , واذا
ارجعت false لا نبدأ الاختبار. الان نريد ان نقوم بعرض الاسئله , سوف نقوم
بكتابة سؤالين فقط , لكي لا نقوم بإطالة الدرس, ارجع الى الملف output.php
واكتب الداله التاليه :
اضغط على الصور لتكبيرها
لاحظ اننا استخدمنا هنا الطريقة GET لارسال البيانات, لكي تفهم
الطريقتين بشكل صحيح, ارجع الان الى الملف quiz.php , وقم اضافة السطر
التالي:
قم بتشغيل الملف info.php الان , وقم بتجربة برنامجك , وسوف تجد انك ستصل الى الصفحة التاليه :
قربنا من النهاية. نريد الان ان نقوم بمعرفة اذا قام المستخدم بكتابة
الاجابات الصحيحه ام لا, اذن لنقم بإنشاء متغير اسمه mark نضع به العلامات
ونريد ان نستخدمه في جميع الصفحات, اذن سنحتاج العباره global , ارجع الى
الملف quiz_fun.php واضف السطرين التاليين :
بقيت الان الصفحه الاخيره, ولن اخذ وقت طويل في شرحها, فسأضعها لك , واعتقد انه الان لديك الامكانيه لفهم الكود الموجود بداخلها :
ملاحظه : جميع القيم التي تكون قادمه عن طريق النماذج , تكون على شكل
نصوص (string ) ولهذا استخدمنا التحويل من نص الى رقم , كما تعلمنا سابقا ,
لانه لن نستطيع ان نقوم بمقارنه صحيحه اذا كان الطرفين من غير النوع , ولا
تنسى انه يمكنك استخدام المعامل ( === ) , لمعرفة ان الطرفين متساويين ومن
نفس النوع
سؤال على الدرس :1 – قم بالتعديل على برنامج الاختبار , حيث يكتب لك في الصفحه الاخيره
معلومات المستخدم الذي دخل الاختبار , الاسم والبريد الالكتروني مع الدرجه
التي حصل عليها المستخدم في الاختبار (
مساعده : استخدم global )
الـــدرس الــقادم :سوف نتعرف في الدرس القادم على نبذه عامه عن المصفوفات وانواعها , وشرحها بطريقه مفصله , لانها تعتبر نقطة تحور كبيره في هذه اللغه