I thought I knew all about PHP until I found this website! "كنت أعتقد أنني أعرف كل شيء عن PHP حتى وجدت هذا الموقع!"
جين

Supressing أخطاء

أحيانا كنت تريد أن تقمع أخطاء ألقاها الشفرة الخاصة بك، لأنه ربما كنت التعامل مع هذا بطريقة أخرى.

خطأ مراقبة المشغل

المشغل سيطرة الخطأ هو @. يتم إلحاق هذا إلى واجهة التعبير عن ذلك المتغيرات، وظائف، وتشمل المكالمات.

لكن لا يمكنك استخدام المشغل السيطرة على خطأ حيث تم التصريح شيء مضيفا لذلك أمام وظيفة أو تعريف الفئة.

وعلاوة على هذا المشغل supresses فقط رسائل من تعبير، فإنه لا supress الاستثناءات ، وسوف لا يزال يتم طرح هذه كالمعتاد. ويرد مثالا على ذلك في عمل أدناه.

results = @mysql_select ( " SELECT * FROM Users " ) ; $ = @ النتائج mysql_select ("SELECT * من المستخدمين")؛

لذلك سوف رمز أعلاه ضمان أن يتم طرح أية تحذيرات أو ملاحظات من قبل الدالة أعلاه.

لكن عليك أن تكون حذرا ألا يساء المشغل سيطرة خطأ، ينبغي أن تستخدم لوقف الأخطاء التي القيت حيث تعرف أنها آمنة لتجاهلها ليس باعتبارها وسيلة عامة من تجاهل المشاكل المحتملة، على حساب كتابة دفاعي رمز .

name = null ; $ اسم = فارغة؛
isset ( $ myname ) ) إذا كان (isset ($ myname))
{
name = $ myname ; $ $ myname = اسم؛
}

رمز أعلاه بالتحقق مما إذا تم تعيين المتغير قبل تعيينه إلى اسم دولار بسبب مبرمج غير متأكد ما اذا كان سيتم تعيين أنه يريد ذلك لوقف رسالة الخطأ التي تظهر. ومع ذلك، يمكن تجاهل هذا الخطأ عن طريق استخدام مشغل سيطرة خطأ كما يلي:

name = @ $ myname ; $ اسم = @ $ myname؛

Unfortunatley باستخدام أسلوب تثبيط الخطأ مرتين كما بطيئة، كما isset. لذلك يجب عدم استخدام المشغل مراقبة الخطأ، واختصار الطريق نحو دفاعي الاختبارات منطق البرمجة

خطأ بالتقرير

يمكنك أيضا إخفاء erors عموما باستخدام الدالة error_reporting لالنصي.

وهذه وظيفة تقييد ما يتم إظهار نوع من الأخطاء

0 ) ; error_reporting (0)؛

رمز أعلاه بإيقاف كل خطأ الإبلاغ عن الكتابة، ولكن يمكنك أيضا أن تسمح أنواع معينة من الأخطاء باستخدام مشغلي المختصة بالبت جنبا إلى جنب مع أنواع الخطأ.

قيمة ثابت وصف
1 E_ERROR استخدام هذا الخيار سوف supress أية أخطاء قاتلة، وهذه هي أخطاء السيناريو حيث لا يمكن ان يستمر عادة.
2 E_WARNING هذا الخيار يسمح لك supress التحذيرات، التي ليست قاتلة ولكنها مشاكل بالتفصيل مع رمز، والتي يمكن في ظروف معينة أن تكون خطيرة.
4 E_PARSE هذا الخيار يسمح لك supress تحليل الأخطاء، والتي هي الأخطاء التي تحدث عند PHP يحاول تحليل النصي أثناء وقت الترجمة، ولكن فشل لسبب ما.
8 E_NOTICE تشير إلى أن واجه السيناريو شيء يمكن أن يكون خطأ، ولكن يمكن ان يحدث عادة عند تشغيل البرنامج النصي.

ولذلك باستخدام القيم أعلاه يمكن suppresed رسائل خطأ مختلفة كما هو موضح أدناه:

E_ERROR | E_WARNING ) ; error_reporting (E_ERROR | E_WARNING)؛

وهذا التقرير الأخطاء القاتلة والتحذيرات

E_NOTICE ) ; error_reporting (E_NOTICE)؛

تقارير كل شيء ما عدا الملاحظات. لذلك يمكنك إضافة ما يصل إلى استبعاد السيناريو في الشكل أعلاه، كما تريد باستخدام | المشغل.

تذكر أنه في حين أن الأخطاء supressing في بعض الحالات قد يكون من الضروري، فمن الأفضل دائما لمحاولة الأولى ومنع الخطأ، فبدلا من قمع للتو. وينبغي جعل هذا السيناريو الخاص بك أكثر يتسم بفعالية.


لا وقدمت تعليق.
أمن صورة
كتبه الدباغ دومينيك
آخر تحديث: 2011/10/25 16:00:38