![]() |
اهداف الدرس:
تهيئة النصوص بإستخدام الداله eval() : هذه الداله المفيده نلاحظ استخدامها دائما في عمل نظام القوالب, وعمل هذه الداله هو ان تقوم بأخذ نص وتنفذه على انه كود من لغة PHP فعلى سبيل المثال, لو كتبنا الكود التالي: http://arccn.net/images/php/l31e1.gif سيكون الناتج لهذا السطر هو: http://arccn.net/images/php/l31e2.gif لنأخذ مثالا على اماكن استخدام هذه الداله, تخيل ان لديك كود برمجي كامل داخل قاعدة البيانات وتريد ان تقوم بتنفيذ هذا الكود البرمجي, اذن الداله eval هي طريقك الى هذا العمل. عمل اخر وهو لو اردت ان تقوم بإنشاء كود برمجي من دالة تكرار , فتنفيذ هذا الكود هو الداله eval. الداله die() : تعلمنا سابقا الداله exit وقلنا اننا لو اردنا الخروج عن تنفيذ العمل وايقاف عمل البرنامج سوف نستخدم هذه الداله , ولكن لو تلاحظ ان الداله exit لا تقوم بإرجاع اي شي الى المتصفح, اذن لدينا الان الداله die وهي تقوم بإخراجك من الكود البرمجي ولكن مع كتابة الخطأ الذي حصل في حالة اردت ذلك. لاحظ المثال التالي: http://arccn.net/images/php/l31e3.gif ويوجد نظير لهذه الداله الا وهو exit() وتستخدم بنفس طريقة لداله die() معرفة معلومات عن بيئة PHP : يوجد هناك شيئين نحتاج الى معرفتهما وهما
http://arccn.net/images/php/l31e4.gif وناتج التعديل هو كما يظهر لك في الصوره التاليه: http://arccn.net/images/php/l31e5.gif مشاركة الاكواد البرمجيه ( highlighting soruces ) : في بعض الاحيان تريد ان تقوم بمشاركة الكود مع بعض المبرمجين , او تريد ان تقوم بعمل برنامج دروس ويظهر لك الكود من غير تنفيذه , اذن سوف تستعمل الداله التي تسمى show_source() او highlight_file() وكل هذه الدالتين تقوم بنفس العمل تماما, وتأخذ هذه الدالتين ملفات ( يجب ان تكون ملفات PHP او لن يكون هناك معنى ) , وعند استخدامها سوف تقوم الداله بجعل الكود يظهر بشكل مرتب وبشكل الوان مرتبه , لنأخذ مثالا يوضح لنا الفكره , لدينا ملف اسمه fun.php ويوجد به الكود التالي: http://arccn.net/images/php/l31e6.gif ونريد ان يظهر هذا الكود بدل من ان يتم تنفيذه ,, فسوف نقوم بعمل ملف ونكتب به التالي: http://arccn.net/images/php/l31e7.gif واذا قمنا بتشغيل هذا البرنامج فسوف يظهر لنا الشكل التالي: http://arccn.net/images/php/l31e8.gif |
اهداف الدرس:
اذا كنت تستخدم لغة PHP او اي لغة اخرى فهناك انواع اخطاء تنطبق عليهم جميعا. شي مريح اتوافقني الرأي ؟ الاخطاء هذه على 3 انواع وهي الاخطاء الكتابية ,, الاخطاء التشغيليه ,, الاخطاء المنطقيه وسوف نتكلم لكل واحده على حده لكي تفهم مضمونها وكيفية تجنبها. الاخطاء الكتابية : يوجد لكل لغة شروط كتابية وتسمى بال ( Syntax ) ونحن الان نريد ان نشرع هذه الاخطاء المسميه ب ( Syntax Error ) وهذا الخطاء اذا لم نتبع شروطه فسوف ينتهي بنا المجال الى برنامج لن يعمل بشكل صحيح ولن يتم تشغيله في الاساس , وتشمل الفاصلة المنقوطه في اخر السطر وان يكون النص بين علامتي تنصيص واذا قمنا بخرق هذه الشروط فلن يعمل معنا البرنامج بشكل صحيح. من اقوى الاشياء الموجوده في لغة PHP هي الرسال المفيده التي تظهر لنا عند وقوع الخطأ, ومثال هذه الرساله هو الشكل التالي : http://arccn.net/images/php/l32e1.gif وقد نتج هذا الخطأ عن الكود التالي : http://arccn.net/images/php/l32e2.gif لو تلاحظ ان خطأنا في الكود في الاعلى هو اننا عندما مررنا النص لدالة التاريخ لم نقم بإقفال علامتي التنصيص ,, لقد وضعنا علامه واحده ونسينا الاخرى وللك نتج هذا الخطأ اعزائي. خطأ مبتدئين او خطأ عجله ,, لكم القرار http://arccn.net/wp-includes/images/...icon_smile.gif . لا تنسى ان الاخطاء الكتابيه من اسهل الاخطاء في لغات البرمجه ولذلك انها تعطيك الخطأ والسطر الذي يقع به الخطأ لكي يتم تعديله. الاخطاء التشغيلية : الاخطاء التشغيليه تعتبر اصعب في الايجاد والاصلاح فهذه الاخطاء لا تنتج عن خطأ في الكتابه يتم اكتشافه من قبل المترجم. هذه الاخطاء تحصل من طريقة عمل البرنامج مع ان جميع الاكواد مكتوبه بشكل صحيح ومثال على هذا الخطا هو عند استخدام العباره include( ‘filename.php ); فهذه العباره صحيحه ولا يوجد اي خطأ كتابي بها ولكن عند التشغيل سوف تجد ان هناك خطأ لان الملف غير موجود في الاساس والرساله التي ستظهر لك ان المترجم ليس لديه الصلاحيه لفتح هذا الملف ( لاحظ انه غير موجود ) وسوف يظهر لك خطأ شبيه بالتالي : http://arccn.net/images/php/l32e3.gif مثال اخر على خطأ تشغيلي هو القسمه على 0 , فلقد كتبت كود صحيح من 5 اسطر ولكن لم يعمل لان القسمه على 0, لاحظ الشكل التالي: http://arccn.net/images/php/l32e4.gif فنتج لدي هذه الرساله الي تقوم بجعل يومك سيئا http://arccn.net/wp-includes/images/...icon_smile.gif , : http://arccn.net/images/php/l32e5.gif وسوف اسهل لك هذا الدرس بإعطائك الاخطاء التشغيليه الشائعه وهي :
تعتبر الاخطاء المنطقيه من اصعب الاخطاء عثورا واصلاحا في جميع لغات البرمجه كلها. وخلاصة هذه الاخطاء ان الكود مكتوب بشكل صحيح ويعمل بشكل صحيح ولكن لا يقوم بفعل النتيجه التي يريدها كاتب الكود البرمجي. مثال على هذا الخطأ هو دالة التكرار ( for loop ) لاحظ الكود التالي : http://arccn.net/images/php/l32e6.gif لو نظرت الى الكود نظرة سريعه فسوف ترى ان المراد منه هو كتابة الكلمه ” اهلا ” 10 مرات اليس ذلك صحيحا ؟ ولكن عند تشغيل هذا البرنامج سوف يقوم بكتابة الكود فقط مره واحده. اذا لم تعمق النظر فلن تجد الخطأ ولكن اذا نظرت بتركيز شديد سوف ترى ان هناك فاصله منقوطه بعد انتهاء قوس دالة التكرار وهذه النقه تجعل الداله تدور 10 مرات ثم بعد ذلك تقوم بطباعة الكلمه اهلا, وهذا هو سبب الخطأ. وايضا يحصل الخطأ في الدالة While اذا لم نقم بوضع شرط يخرجنا من دالة التكرار. مراحل الاخطاء : تقوم لغة PHP بإعطائك الحرية في اظهار الاخطاء كيفما تريد , يمكنك اختيار اي اخطاء تظهر واي منها لا تظهر وبالطبيعه تقوم PHP بإطهار كل الاخطاء من دون التنبيهات, ومراحل الاخطاء عباره عن ثوابت سوف اعرضها لك في الجدول الذي ستراه الان : القيمة الخطأ المعنى1E_ERRORاظهار الاخطاء الحرجه وقت التشغيل2E_WARNINGاظهار الاخطاء الغير حرجه وقت التشغيل4E_PARSEاظهار الاخطاء الي تتبع الترجم8E_NOTICEاظهار التنبيهات16E_CORE_ERRORاظهار الخطأ اذا لم يعمل محرك PHP32E_CORE_WARNINGاظهار الاخطاء الغير حرجه اذا لم يعمل محرك PHP64E_COMPILE_ERROEاظهار اخطاء ترجمة الكود128E_COMPILE_WARNINGاظهار الاخطاء الغير حرجه في ترجمة الكود256E_USER_ERRORاظهار الاخطاء المعرفه من المستخدم مسبقا512E_USER_WARNINGاظهار الاخطاء الغير حرجه المعرفه من المستخدم مسبقا1024E_USER_NOTICEاظهار التنبيهات المعرفه من المستخدم مسبقا2048E_ALLاظهار كل الاخطاء والانذارات والتنبيهات اهداف الدرس:
عرفنا في الدرس السابع عشر و الثامن عشر ماهي برمجة الكائنات وماهي فوائدها وكيف تعمل وكيف نستخدمها, وعند اصدار النسخه رقم 5 من لغة PHP تم اعادة كتابة وهيكلة الكائنات في اللغه. تم اعادة النظر في نظام الكائنات القديم, واصدار نظام كائنات جديد, اقوى , افضل, خصائص اكثر. هذا هو موضوع درسنا لهذا اليوم, التعرف على جديد برمجة الكائنات في الاصدار الخامس من PHP و كما وعدتكم سوف يعتبر ( متفرقات ) و البقاء على الخط مع اللغه بعد انتهائنا من الدوره الكامله. مؤسس التصنيف : هل تذكر عندما كنا في الدرس السابع عشر نقوم بإنشاء مؤسس التصنيف بالطريقه ( function ) دعني اخبرك بشيئ ولكن لا تغضب مني, فتلك الطريقه لم تكن رسميه ولكن قمت بتعليمها لك لانها ( افضل ), والدليل على ذلك فالان لغة PHP في الاصدار رقم 5 قامت بجعل خاصية ( مؤسس التصنيف ) والذي يعني (Constructor ) شيئ اساسي في برمجة الكائنات. انشاء مؤسس تصنيف في الاصدار رقم 5 يكون عن طريق الكلمه المفتاحيه ( __construct() ) واليك مثال يشرح لك الطريقه , انظر التالي: http://arccn.net/images/php/l33e3.gif ومن مسامحة هذه اللغه الجميله, فقد جعلت الطريقه القديمه ( التي قمت بتعلمها في الدرس السابع عشر ) تعمل ايضا, فلو ان المترجم لم يجد الكلمه المفتاحيه ( __construct() ) فسوف يقوم بالبحث عن معامل يبدأ بنفس اسم الكائن لكي يتم اعتباره انه مؤسس التصنيف. ملاحظه: اذا كنت تستخدم مبدأ الوراثه واردت ان تقوم بأستخدام ( مؤسس التصنيف ) للكائن الاب في الكائن ( الوارث ) فيكون ذلك بالطريقه التاليه ( parent::__construct() ) لاحظ الكود التالي: http://arccn.net/images/php/l33e4.gif مدمر التصنيف : في الاصدار الخامس من هذه اللغه تم اضافة خاصية تسمي ( Destructor ) ومعناها ( المدمر ) وهي شبيه للغات البرمجه مثل ( C++ )وهذا المعامل يعمل في حالتين,
http://arccn.net/images/php/l33e5.gif ملاحظه : نفس طريقة مؤسس التصنيف في حالة الوراثه يتم استخدامها مع مدمر التصنيف ملاحظه : يتم استدعاء معامل التدمير حين انتهاء عمل برنامجك بشكل تلقائي الخواص : تم في الاصدار الخامس تغيير طريقة الخواص بالكامل في لغة PHP فأصبحت اكثر قوة واكثر تحكما, والمبدأ الذي تحدثنا عنه (Encapsulation ) تم تطبيقه بالكامل في هذا الاصدار. فعند تعلمنا لبرمجة الكائنات في الدوره سابقا كنا نقوم بإنشاء الخواص بالشكل التالي : http://arccn.net/images/php/l17e3.gif ولكن الرائع في PHP5 هو اننا الان نتحكم في ( اظهار ) الخواص وهناك 3 انواع لهذا التحكم وهي : 1. عام (Public ) وهذه الخاصيه تجعل الخاصيه قابلا للوصول من اي مكان تريده. فلو ان عندنا كائن اسمه ( car ) وبه الخاصيه ( color ) فيمكننا الوصول الى هذا الخاصيه بالطريقه التاليه ( $car->color ). 2. محمي (Protected ) وهذه الخاصيه تعني ان الخاصيه قابلا للوصل فقط من الكائنات التي تكون ( وارثه ) للكائن الاصلي. 3. سري (Private ) هذه الخاصيه هي (الافضل) وهي تعني ان التحكم في الخواص يكون فقط داخل الكائن الذي تم انشاءه ( في نفس الـ class ) لنقم برؤية مثال سريع لكيفية انشاء خواص بهذه الطرق الثلاث, لاحظ الكود التالي: http://arccn.net/images/php/l33e1.gif فلو على سبيل المثال , اردنا ان نقوم بإستخدام الخاصيه ( $on ) في كائن يرث الكائن ( car ) فلن يمكننا ذلك الا عن طريق (معاملات ) تقوم بجعلنا نتحكم في الخاصيه. ملاحظه : استخدام الكلمه المفتاحيه ( var ) لانشاء الخواص لن تعمل في لغة PHP الاصدار الخامس. المعاملات : ايضا في الاصدار الخامس من لغة PHP تم تغيير طريقة بناء المعاملات, واصبحت مثل الخواص, فهناك معاملات ( عامه ) و ( محميه ) و( سريه ) لاحظ المثال التالي: http://arccn.net/images/php/l33e2.gif ملاحظه : انشاء معامل من غير ( public ) او ( private ) او ( protected ) فذلك سوف يجعل مترجم PHP يفترض ان المعامل من النوع (public ) تلقائيا. الكلمة المفتاحيه Final : هذه الكلمه المفتاحيه تستخدم مع الكائن او المعامل وهي تجعل هذا الكائن على المرحله ( النهائيه ) ولا يمكن ابدا تغييره بإستخدام الطريقه ( overrideing ) للكائن او المعاملات. وزيادة على ذلك فإن الكائن الذي يبدأ بالكلمه Final فلا يمكن ان يستخدم في مبدأ الوراثه. لاحظ المثال التالي: http://arccn.net/images/php/l33e6.gif وناتج عمل هذه الطريقه عند انشاء كائن من الـ sportCar سوف يؤدي ذلك الى خطأ من النوع ( Fata error ). سؤال على الدرس :
منقول عن موقع http://arccn.net |
الساعة الآن 07:29 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. منتديات المُنى والأرب
جميع المشاركات المكتوبة تعبّر عن وجهة نظر كاتبها ... ولا تعبّر عن وجهة نظر إدارة المنتدى |