PHP xatoliklar ma’lumotnomasi
PHP xatosi bilan tanishish
Xato funksiyalari xatolarni qayta ishlash va jurnalga yozish bilan shug‘ullanish uchun ishlatiladi.
Xato funksiyalari bizga xatolarni boshqarish qoidalarini aniqlashga va xatolarni qayd qilish usullarini o‘zgartirishga imkon beradi.
Ro‘ yordam‘ yordami bizga xabarlarni tog‘ridan-to‘g‘ri boshqa mashinalarga, elektron xabarlariga yoki tizim jurnallariga pochta orqali yuboriladi.
Xatolar haqida hisobot berish funksiyalari bizga qanday darajadagi va xatolik haqida fikr-mulohaza berilishini sozlash imkonini beradi.
O‘rnatish
PHP xato funksiyalari PHP yadrosining bir qismidir. Ushbu funksiyalardan foydalanish uchun o‘rnatish talab qilinmaydi.
Ish vaqti konfiguratsiyasi
Xato funksiyalarining ishlashiga php.ini-dagi sozlamalar ta’sir qiladi.
Xatolar va ro‘yxatga olish konfiguratsiyasi variantlari:
| Name | Default | Tavsif | Changeable |
|---|---|---|---|
| error_reporting | NULL | Xatolar haqida hisobot berish darajasini belgilaydi (butun yoki nomli konstantalar) | PHP_INI_ALL |
| display_errors | "1" | Xatolarni ekranga chop etish yoki ularni foydalanuvchidan yashirish kerakligini belgilaydi. Eslatma: Bu xususiyat hech qachon ishlab chiqarish tizimlarida ishlatilmasligi kerak (faqat rivojlanishingizni qo‘llab-quvvatlash uchun) |
PHP_INI_ALL |
| display_startup_errors | "0" | Display_errors yoqilgan bo‘lsa ham, PHP ishga tushirish ketma-ketligida yuzaga keladigan xatolar ko‘rsatilmaydi Eslatma: Displey_startup_errors ni o‘chirib qo‘yish tavsiya etiladi, debug’dan tashqari |
PHP_INI_ALL |
| log_errors | "0" | Skript xato xabarlari server xato jurnaliga yoki error_logga kiritilishi kerakligini belgilaydi. Eslatma: Ishlab chiqarish veb-saytlarida xatolarni ko‘rsatish o‘rniga xatolar jurnalidan foydalanish tavsiya etiladi. |
PHP_INI_ALL |
| log_errors_max_len | "1024" | Log_errors maksimal uzunligini baytlarda o‘rnatadi. "0" qiymati hech qanday maksimal uzunlikni qo‘llamaslik uchun ishlatilishi mumkin. Ushbu uzunlik jurnalga kiritilgan xatolar, ko‘rsatilgan xatolar, shuningdek, $php_errormsg (PHP 4.3 dan beri mavjud) uchun qo‘llaniladi. | PHP_INI_ALL |
| ignore_repeated_errors | "0" | Takroriy xato xabarlarini jurnalga kiritish yoki yo‘qligini belgilaydi. "1" ga o‘rnatilgan bo‘lsa, u bir qatordagi bir xil fayldagi takroriy xatolar bilan xatolarni qayd etmaydi (PHP 4.3 dan beri mavjud) | PHP_INI_ALL |
| ignore_repeated_source | "0" | Takroriy xato xabarlarini jurnalga kiritish yoki yo‘qligini belgilaydi. “1” ga o‘rnatilganda, u turli fayllar yoki manba qatorlaridagi takroriy xatolar bilan xatolarni qayd etmaydi (PHP 4.3 dan beri mavjud) | PHP_INI_ALL |
| report_memleaks | "1" | Agar "1" (standart) ga o‘rnatilgan bo‘lsa, bu parametr Zend xotira menejeri tomonidan aniqlangan xotira oqishlari haqida hisobotni ko‘rsatadi (PHP 4.3 dan beri mavjud) | PHP_INI_ALL |
| track_errors | "0" | Agar "1" ga o‘rnatilgan bo‘lsa, oxirgi xato xabari har doim $php_errormsg o‘zgaruvchisida mavjud bo‘ladi | PHP_INI_ALL |
| html_errors | "1" | Xato xabarlaridagi HTML teglarini o‘chiradi | PHP_INI_ALL PHP_INI_SYSTEM in PHP <= 4.2.3. |
| xmlrpc_errors | "0" | Oddiy xato hisobotini o‘chiradi va xatolarni XML-RPC xato xabari sifatida formatlaydi (PHP 4.1 dan beri mavjud) | PHP_INI_SYSTEM |
| xmlrpc_error_number | "0" | XML-RPC faultCode elementining qiymati sifatida ishlatiladi (PHP 4.1 dan beri mavjud) | PHP_INI_ALL |
| docref_root | "" | (available since PHP 4.3) | PHP_INI_ALL |
| docref_ext | "" | (available since PHP 4.3.2) | PHP_INI_ALL |
| error_prepend_string | NULL | Xato xabaridan oldin chiqariladigan stringni belgilaydi | PHP_INI_ALL |
| error_append_string | NULL | Xato xabaridan keyin chiqariladigan stringni belgilaydi | PHP_INI_ALL |
| error_log | NULL | Skript xatolar qayd qilinishi kerak bo‘lgan fayl nomini belgilaydi. Fayl veb-server foydalanuvchisi tomonidan yozilishi kerak. Agar maxsus qiymat syslog ishlatilsa, xatolar o‘rniga tizim loggeriga yuboriladi | PHP_INI_ALL |
PHP xatosi va ro‘yxatga olish funksiyalari
| Function | Tavsif |
|---|---|
| debug_backtrace() | Backtrace (chaqiruvlar izi) hosil qiladi |
| debug_print_backtrace() | Backtrace’ni chop etadi |
| error_clear_last() | Oxirgi xatoni tozalaydi |
| error_get_last() | Oxirgi sodir bo‘lgan xatoni qaytaradi |
| error_log() | Jurnalga xato xabari yuboradi, faylga yoki pochta qayd yozuviga |
| error_reporting() | Qaysi xatolar haqida xabar berilishini belgilaydi |
| restore_error_handler() | Oldingi xato ishlovchisini (error handler) tiklaydi |
| restore_exception_handler() | Oldingi istisno ishlovchisini (exception handler) tiklaydi |
| set_error_handler() | Foydalanuvchi tomonidan aniqlangan xato ishlov berish funksiyasini o‘rnatadi |
| set_exception_handler() | Foydalanuvchi tomonidan belgilangan istisnolarni qayta ishlash funksiyasini o‘rnatadi |
| trigger_error() | Foydalanuvchi darajasidagi xato xabarini yaratadi |
| user_error() | trigger_error() funksiyasining taxallusi |
PHP oldindan belgilangan xato va jurnalga yozish doimiylari
| Qiymat | Constant | Tavsif |
|---|---|---|
| 1 | E_ERROR | Ishlash vaqtidagi halokatli xatolar. Qayta tiklab bo‘lmaydigan xatolar. Skriptning bajarilishi to‘xtatiladi |
| 2 | E_WARNING | Ish vaqti haqida ogohlantirishlar (o‘limga olib kelmaydigan xatolar). Skriptning bajarilishi to‘xtatilmaydi |
| 4 | E_PARSE | Kompilyatsiya vaqtidagi tahlil xatolari. Tahlil xatolar faqat tahlilchi tomonidan yaratilishi kerak |
| 8 | E_NOTICE | Ish vaqti haqida bildirishnomalar. Skript xato bo‘lishi mumkin bo‘lgan narsani topdi, lekin skriptni normal ishga tushirganda ham sodir bo‘lishi mumkin |
| 16 | E_CORE_ERROR | PHP ishga tushirilganda jiddiy xatolar. Bu E_ERROR ga o‘xshaydi, faqat PHP yadrosi tomonidan yaratilgan |
| 32 | E_CORE_WARNING | PHP ishga tushirilganda halokatli bo‘lmagan xatolar. Bu E_WARNING ga o‘xshaydi, faqat PHP yadrosi tomonidan yaratilgan |
| 64 | E_COMPILE_ERROR | Kompilyatsiya vaqtida halokatli xatolar. Bu E_ERROR ga o‘xshaydi, faqat Zend Scripting Engine tomonidan yaratilgan |
| 128 | E_COMPILE_WARNING | Kompilyatsiya vaqtida halokatli bo‘lmagan xatolar. Bu E_WARNING ga o‘xshaydi, faqat Zend Scripting Engine tomonidan yaratilgan |
| 256 | E_USER_ERROR | Foydalanuvchi tomonidan yaratilgan jiddiy xato. Bu E_ERROR ga o‘xshaydi, faqat PHP trigger_error() funksiyasi yordamida PHP kodida yaratilmagan. |
| 512 | E_USER_WARNING | Foydalanuvchi tomonidan yaratilgan halokatli bo‘lmagan ogohlantirish. Bu E_WARNING ga o‘xshaydi, faqat PHP trigger_error() funksiyasi yordamida PHP kodida yaratilmagan. |
| 1024 | E_USER_NOTICE | Foydalanuvchi tomonidan yaratilgan bildirishnoma. Bu E_NOTICE ga o‘xshaydi, faqat PHP trigger_error() funksiyasidan foydalangan holda PHP kodida yaratilgan. |
| 2048 | E_STRICT | PHP kodingizga o‘zgartirishlar taklif qilishini yoqing, bu sizning kodingizning eng yaxshi o‘zaro ishlashi va oldinga mos kelishini ta’minlaydi (PHP 5 dan beri, lekin PHP 5.4 ga qadar E_ALL ga kiritilmagan) |
| 4096 | E_RECOVERABLE_ERROR | Tushunarli halokatli xato. Ehtimol, xavfli xatolik yuz berganligini ko‘rsatadi, lekin Dvigatelni beqaror holatda qoldirmagan. Agar xato foydalanuvchi tomonidan aniqlangan dastak tomonidan aniqlanmasa, dastur E_ERROR bo‘lgani uchun to‘xtatiladi (PHP 5.2 dan beri) |
| 8192 | E_DEPRECATED | Ish vaqti haqida bildirishnomalar. Kelgusi versiyalarda ishlamaydigan kod haqida ogohlantirishlarni olish uchun buni yoqing (PHP 5.3 dan beri) |
| 16384 | E_USER_DEPRECATED | Foydalanuvchi tomonidan yaratilgan ogohlantirish xabari. Bu E_DEPRECATED ga o‘xshaydi, faqat PHP kodida trigger_error() PHP funksiyasidan foydalangan holda yaratilgan (PHP 5.3 dan boshlab) |
| 32767 | E_ALL | Barcha PHP xatolar va ogohlantirishlarni yoqish (versiyalari < 5.4 E_STRICT bundan mustasno) |
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
