Tahap ralat php ialah: 1. E_ERROR ralat masa jalanan, biasanya tidak dapat dipulihkan; 2. Amaran masa jalan E_WARNING (ralat bukan fatal); yang berlaku semasa proses permulaan permulaan; 5. E_CORE_WARNING ialah amaran (ralat tidak membawa maut) yang berlaku semasa proses permulaan permulaan;
Persekitaran pengendalian tutorial ini: sistem windows7, versi PHP8, komputer DELL G3
Dalam pembangunan program kami, kami sering menghadapi beberapa Untuk program menjalankan ralat, PHP akan memberikan gesaan yang berbeza mengikut tahap ralat program. Contohnya, amaran, ralat, dsb., tetapi ralat ini boleh ditetapkan. Jika ralat ini hanyalah ralat kecil, kita boleh menghalang ralat ini daripada dilaporkan.
Tahap ralat dalam php ialah:
1 |
E_ERROR (integer)
|
maut ralat masa jalan. Ralat jenis ini secara amnya merupakan situasi yang tidak boleh dipulihkan, seperti masalah yang disebabkan oleh peruntukan memori. Akibatnya ialah skrip ditamatkan dan tidak terus berjalan. | |
2 |
E_WARNING (integer)
|
Amaran masa jalan (ralat tidak membawa maut). Hanya mesej segera diberikan, tetapi skrip tidak ditamatkan. | |
4 |
E_PARSE (integer)
|
Ralat penghuraian sintaks masa kompilasi. Ralat penghuraian dijana hanya oleh penghurai. | |
8 |
E_NOTICE (integer)
|
Pemberitahuan masa jalan. Menunjukkan bahawa skrip menghadapi situasi yang mungkin muncul sebagai ralat, tetapi mungkin juga terdapat pemberitahuan serupa dalam skrip yang boleh berjalan seperti biasa. | |
16 |
E_CORE_ERROR (integer) |
Berlaku semasa permulaan PHP ralat maut . Ralat ini serupa dengan E_ERROR , tetapi dijana oleh teras enjin PHP. |
sejak PHP 4 |
32 |
E_CORE_WARNING (integer) |
Amaran (ralat tidak membawa maut) berlaku semasa permulaan permulaan PHP. Serupa dengan E_WARNING , tetapi dijana oleh teras enjin PHP. |
sejak PHP 4 |
64 |
E_COMPILE_ERROR (integer) |
Ralat masa penyusunan maut. Serupa dengan E_ERROR , tetapi dijana oleh enjin skrip Zend. |
sejak PHP 4 |
128 |
E_COMPILE_WARNING (integer) |
Amaran masa kompilasi (ralat tidak membawa maut). Serupa dengan E_WARNING , tetapi dijana oleh enjin skrip Zend. |
sejak PHP 4 |
256 |
E_USER_ERROR (integer) |
Mesej ralat yang dijana pengguna. Sama seperti E_ERROR , tetapi ia dijana oleh pengguna menggunakan fungsi PHP trigger_error() dalam kod. |
sejak PHP 4 |
512 |
E_USER_WARNING (integer) |
Mesej amaran yang dijana pengguna. Sama seperti E_WARNING , tetapi ia dijana oleh pengguna menggunakan fungsi PHP trigger_error() dalam kod. |
sejak PHP 4 |
1024 |
E_USER_NOTICE (integer) |
Mesej pemberitahuan yang dijana oleh pengguna. Sama seperti E_NOTICE , tetapi ia dijana oleh pengguna menggunakan fungsi PHP trigger_error() dalam kod. |
sejak PHP 4 |
2048 |
E_STRICT (integer)
|
Dayakan cadangan PHP untuk pengubahsuaian kod untuk memastikan kesalingoperasian terbaik dan keserasian hadapan kod. | sejak PHP 5 |
4096 |
E_RECOVERABLE_ERROR (integer) |
Kesilapan maut yang boleh ditangkap. Ia menunjukkan bahawa ralat yang berpotensi berbahaya telah berlaku, tetapi tidak menyebabkan enjin PHP menjadi tidak stabil. Jika ralat tidak ditangkap oleh pengendali yang ditentukan pengguna, ia akan menjadi E_ERROR dan skrip akan ditamatkan. |
sejak PHP 5.2.0 |
8192 |
E_DEPRECATED (integer )
|
Pemberitahuan masa jalan. Apabila didayakan, amaran akan diberikan tentang kod yang mungkin tidak berfungsi dengan betul dalam versi akan datang. | sejak PHP 5.3.0 |
16384 |
E_USER_DEPRECATED (integer) |
Mesej amaran untuk output pengguna yang rendah. Sama seperti E_DEPRECATED , tetapi ia dijana oleh pengguna menggunakan fungsi PHP trigger_error() dalam kod. |
sejak PHP 5.3.0 |
30719 |
E_ALL (integer )
|
E_STRICT Semua ralat dan mesej amaran apabila keluar. |
30719 dalam PHP 5.3.x, 6143 dalam PHP 5.2.x, 2047 sebelum ini |
Cara menetapkan tahap pelaporan ralat dalam PHP:
1. Ubah suai fail konfigurasi PHP php.ini
Selepas menetapkan error_reporting dengan cara ini, mulakan semula pelayan web dan ia akan berkuat kuasa secara kekal.
Buka fail konfigurasi php.ini dan lihat nilai lalai peringkat pelaporan ralat error_reporting, seperti berikut:
error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT1.
Ini bermakna melaporkan semua ralat, kecuali E_DEPRECATED dan E_STRICT.
Tukarnya kepada:
error_reporting=E_ALL & ~E_NOTICE1.
Ini bermakna melaporkan semua ralat kecuali E_NOTICE. Ini juga merupakan tahap pelaporan ralat yang paling biasa digunakan Ia tidak akan melaporkan ralat kelas perhatian (seperti menggunakan pembolehubah tidak ditentukan).
Simpan dan berkuat kuasa selepas memulakan semula pelayan web.
2. Gunakan fungsi error_reporting()
Selepas menetapkan dengan cara ini, ia boleh berkuat kuasa serta-merta. Tetapi hanya di kawasan di belakang panggilan fungsi error_reporting() dalam skrip semasa.
int error_reporting ([ int $level ] )1.
Parameter boleh menjadi integer atau pengecam pemalar yang sepadan Anda disyorkan untuk menggunakan bentuk pemalar. Nilai pulangan ialah nilai (nilai integer) tahap pelaporan ralat yang berkuat kuasa di lokasi semasa.
Nota: Nilai lalai display_errors dalam fail konfigurasi php.ini ialah Hidup, yang bermaksud gesaan ralat dipaparkan Jika ditetapkan kepada Mati, semua gesaan ralat akan dimatikan.
Gunakan error_reporting(0) atau tambah @
di hadapan fungsi untuk menyekat output ralat untuk mengelakkan mesej ralat daripada membocorkan maklumat sensitif.
Tahap parameter
Tahap pelaporan_ralat baharu. Boleh menjadi bitmask atau pemalar bernama.
Adalah disyorkan untuk menggunakan pemalar bernama untuk memastikan keserasian dengan versi masa hadapan. Disebabkan penambahan tahap ralat dan peningkatan dalam julat nilai integer,
tahap ralat berasaskan integer yang lebih lama tidak akan sentiasa berkelakuan seperti yang diharapkan.
nilai kemungkinan tahap (tahap pelaporan ralat dalam php)
Biasa: kira-kira 15 keseluruhannya
15 sepadan dengan tepat dengan binari 15 bit.
Perlu diambil perhatian bahawa medan dalam jadual di atas tidak statik Versi PHP yang berbeza mungkin mempunyai nilai yang berbeza
Mana-mana nombor pilihan di atas boleh disambungkan dengan "OR". ATAU atau |) untuk melaporkan semua tahap ralat yang diperlukan.
Sebagai contoh, kod berikut mematikan ralat dan amaran yang ditentukan pengguna, menjalankan operasi tertentu dan kemudian kembali ke tahap ralat asal:
Contoh:
<?php error_reporting(0); //禁用错误报告 error_reporting(E_ERROR | E_WARNING | E_PARSE);//报告运行时错误 error_reporting(E_ALL); //报告所有错误 error_reporting(E_ALL ^ E_NOTICE); //除E_NOTICE报告所有错误,是在php.ini的默认设置 error_reporting(-1); //报告所有 PHP 错误 error_reporting(3); //不报E_NOTICE error_reporting(11); //报告所有错误 ini_set('error_reporting', E_ALL); // 和 error_reporting(E_ALL); 一样 error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);//表示php错误,警告,语法错误,提醒都返错。 ?>
Hubungan penukaran:
E_All: Perpuluhan ialah 30719, ditukar kepada perduaan ia ialah 111011111111111
E_NOTICE: Perpuluhan ditukar kepada perduaan ialah 1000
~E_NOTICE: Tolak E_NOTICE dan menjadi 0111
E_ALL & ~E_NOTICE:: E_ALL dan ~E_NOTICE adalah Operasi AND, ia 111011111110111, yang ditukar kepada perpuluhan ialah 30711
Anda boleh lihat bahawa E_ALL tidak menunjukkan semua ralat Bit ke-12 ialah 0. Berat bit ini ialah 2 hingga kuasa ke-11, iaitu 2048. Sebenarnya, Ia adalah nilai E_STRICT, jadi E_ALL memaparkan semua peringkat ralat kecuali E_STRICT.
Perduaan E_ALL & ~E_NOTICE boleh dilihat bahawa dari kanan ke kiri, bit ke-4 dan ke-12 ialah 0, dan berat bit ke-4 ialah 2 hingga kuasa ketiga, iaitu 8 ialah nilai E_NOTICE, jadi semua ralat kecuali E_STRICT dan E_NOTICE dipaparkan.
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Apakah tahap ralat dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!