• php
  • 1754
  • 20-3-2008
  • اذا كنت تستخدم لغة PHP او اي لغة اخرى فهناك انواع اخطاء تنطبق عليهم جميعا. شي مريح اتوافقني الرأي ؟ الاخطاء هذه على 3 انواع وهي الاخطاء الكتابية ,, الاخطاء التشغيليه ,, الاخطاء المنطقيه وسوف نتكلم لكل واحده على حده لكي تفهم مضمونها وكيفية تجنبها.
    اهداف الدرس: الاخطاء البرمجيه
    رسائل الاخطاء
    مراحل الاخطاء
    نهاية المطاف الاخطاء البرمجيه : اذا كنت تستخدم لغة PHP او اي لغة اخرى فهناك انواع اخطاء تنطبق عليهم جميعا. شي مريح اتوافقني الرأي ؟ الاخطاء هذه على 3 انواع وهي الاخطاء الكتابية ,, الاخطاء التشغيليه ,, الاخطاء المنطقيه وسوف نتكلم لكل واحده على حده لكي تفهم مضمونها وكيفية تجنبها. الاخطاء الكتابية : يوجد لكل لغة شروط كتابية وتسمى بال ( Syntax ) ونحن الان نريد ان نشرع هذه الاخطاء المسميه ب ( Syntax Error ) وهذا الخطاء اذا لم نتبع شروطه فسوف ينتهي بنا المجال الى برنامج لن يعمل بشكل صحيح ولن يتم تشغيله في الاساس , وتشمل الفاصلة المنقوطه في اخر السطر وان يكون النص بين علامتي تنصيص واذا قمنا بخرق هذه الشروط فلن يعمل معنا البرنامج بشكل صحيح. من اقوى الاشياء الموجوده في لغة PHP هي الرسال المفيده التي تظهر لنا عند وقوع الخطأ, ومثال هذه الرساله هو الشكل التالي :

    i

    وقد نتج هذا الخطأ عن الكود التالي :

    i

    لو تلاحظ ان خطأنا في الكود في الاعلى هو اننا عندما مررنا النص لدالة التاريخ لم نقم بإقفال علامتي التنصيص ,, لقد وضعنا علامه واحده ونسينا الاخرى وللك نتج هذا الخطأ اعزائي. خطأ مبتدئين او خطأ عجله ,, لكم القرار :). لا تنسى ان الاخطاء الكتابيه من اسهل الاخطاء في لغات البرمجه ولذلك انها تعطيك الخطأ والسطر الذي يقع به الخطأ لكي يتم تعديله. الاخطاء الكتابية : الاخطاء التشغيليه تعتبر اصعب في الايجاد والاصلاح فهذه الاخطاء لا تنتج عن خطأ في الكتابه يتم اكتشافه من قبل المترجم. هذه الاخطاء تحصل من طريقة عمل البرنامج مع ان جميع الاكواد مكتوبه بشكل صحيح ومثال على هذا الخطا هو عند استخدام العباره include( 'filename.php ); فهذه العباره صحيحه ولا يوجد اي خطأ كتابي بها ولكن عند التشغيل سوف تجد ان هناك خطأ لان الملف غير موجود في الاساس والرساله التي ستظهر لك ان المترجم ليس لديه الصلاحيه لفتح هذا الملف ( لاحظ انه غير موجود ) وسوف يظهر لك خطأ شبيه بالتالي :

    i

    مثال اخر على خطأ تشغيلي هو القسمه على 0 , فلقد كتبت كود صحيح من 5 اسطر ولكن لم يعمل لان القسمه على 0, لاحظ الشكل التالي:

    i

    فنتج لدي هذه الرساله الي تقوم بجعل يومك سيئا :) , :

    i

    وسوف اسهل لك هذا الدرس بإعطائك الاخطاء التشغيليه الشائعه وهي : 1- استخدام دوال غير موجوده 2- قراءة او كتابة ملفات 3- التعامل مع قواعد البيانات 4- الاتصال بخدمات الشبكات 5- عدم التحقق من المعلومات المدخله
    الاخطاء المنطقية : تعتبر الاخطاء المنطقيه من اصعب الاخطاء عثورا واصلاحا في جميع لغات البرمجه كلها. وخلاصة هذه الاخطاء ان الكود مكتوب بشكل صحيح ويعمل بشكل صحيح ولكن لا يقوم بفعل النتيجه التي يريدها كاتب الكود البرمجي. مثال على هذا الخطأ هو دالة التكرار ( for loop ) لاحظ الكود التالي :

    i


    لو نظرت الى الكود نظرة سريعه فسوف ترى ان المراد منه هو كتابة الكلمه " اهلا " 10 مرات اليس ذلك صحيحا ؟ ولكن عند تشغيل هذا البرنامج سوف يقوم بكتابة الكود فقط مره واحده. اذا لم تعمق النظر فلن تجد الخطأ ولكن اذا نظرت بتركيز شديد سوف ترى ان هناك فاصله منقوطه بعد انتهاء قوس دالة التكرار وهذه النقه تجعل الداله تدور 10 مرات ثم بعد ذلك تقوم بطباعة الكلمه اهلا, وهذا هو سبب الخطأ. وايضا يحصل الخطأ في الدالة While اذا لم نقم بوضع شرط يخرجنا من دالة التكرار.
    مراحل الاخطاء : تقوم لغة PHP بإعطائك الحرية في اظهار الاخطاء كيفما تريد , يمكنك اختيار اي اخطاء تظهر واي منها لا تظهر وبالطبيعه تقوم PHP بإطهار كل الاخطاء من دون التنبيهات, ومراحل الاخطاء عباره عن ثوابت سوف اعرضها لك في الجدول الذي ستراه الان : القيمة الخطأ المعنى
    1 E_ERROR اظهار الاخطاء الحرجه وقت التشغيل
    2 E_WARNING اظهار الاخطاء الغير حرجه وقت التشغيل
    4 E_PARSE اظهار الاخطاء الي تتبع الترجم
    8 E_NOTICE اظهار التنبيهات
    16 E_CORE_ERROR اظهار الخطأ اذا لم يعمل محرك PHP
    32 E_CORE_WARNING اظهار الاخطاء الغير حرجه اذا لم يعمل محرك PHP
    64 E_COMPILE_ERROE اظهار اخطاء ترجمة الكود
    128 E_COMPILE_WARNING اظهار الاخطاء الغير حرجه في ترجمة الكود
    256 E_USER_ERROR اظهار الاخطاء المعرفه من المستخدم مسبقا
    512 E_USER_WARNING اظهار الاخطاء الغير حرجه المعرفه من المستخدم مسبقا
    1024 E_USER_NOTICE اظهار التنبيهات المعرفه من المستخدم مسبقا
    2048 E_ALL اظهار كل الاخطاء والانذارات والتنبيهات
    نهاية المطاف : انتهينا !! البعض يقول اخيرا انتهينا من هذه الدروس , انتهت في يومنا هذا دروس لغة PHP واستطيع ان اضمن لك اذا اتعبت الدروس بشكل مناسب وقرأت بعض من المصادر الخارجيه ان تحقق 80% من تعلم لغة PHP , فالقادم جدا سهل مجرد شي متقدم لما سبق ان شرحناه في هذه الدوره. ارجو ان تكونو قد استمتعم في دورة PHP ولا تنسو ان باب الاسئله مفتوح في هذا القسم , فلا تترد على سؤالي بأي شي يخص هذه اللغه اذا واجهتك مشكلة. بالنسبه الى الاشياء التي قد تطرأ على لغة PHP في المستقبل من تغييرات او اشياء مفيده فسوف اقوم بوضعها على دروس متفرقه, اذن لم تنتهي الدروس بل سوف نبقى على اتصال عن طريق هذه اللغه التي سوف تتربع على عرش لغات البرمجه مستقبلا. تحياتي لكم قام بشرح دروس لغة البرمجه اخوكم / محمد الرحيلي
    قام بالتصميم والتجميع اخوكم / ابوليالي ودمتم سالمين وبأمــان الله .
    كن أول من يقيم الموضوع
    12345