Apabila membangun dengan PHP, kami sering menghadapi pelbagai ralat. Mesej ralat ini biasanya membantu kami menyelesaikan masalah dengan cepat dan menyelesaikan masalah dalam kod. Walau bagaimanapun, dalam persekitaran pengeluaran, kami mungkin tidak mahu mendedahkan ralat ini kepada pengguna. Untuk tujuan ini, PHP menyediakan fungsi kawalan tahap ralat, membolehkan kami mengawal secara bebas cara ralat dipaparkan.
Tahap ralat PHP dibahagikan kepada 8 tahap, iaitu:
- E_ERROR: Ralat maut, mesti diselesaikan, jika tidak, kod tidak boleh terus dilaksanakan
- E_WARNING: Ralat amaran, yang tidak akan menyebabkan kod berhenti pelaksanaan, tetapi perlu dibaiki
- E_PARSE: ralat penghuraian sintaks, biasanya disebabkan oleh ralat sintaks kod; , yang tidak akan menyebabkan kod berhenti Pelaksanaan, tetapi perlu diperbaiki;
- E_CORE_ERROR: Ralat fatal kernel, seperti ralat yang berlaku semasa permulaan kernel PHP; ralat;
- E_COMPILE_ERROR: Ralat maut kompilasi , contohnya, fail yang disertakan tidak wujud, dsb.
- E_COMPILE_WARNING: Ralat amaran kompilasi.
- Tahap ralat lalai PHP ialah E_ALL, yang bermaksud semua peringkat gesaan ralat didayakan. Tahap ini sangat berguna semasa membangun dan membantu kami mencari dan menyelesaikan pepijat seawal mungkin. Tetapi dalam persekitaran pengeluaran, kami biasanya tidak mahu mendedahkan maklumat ralat kepada pengguna Dalam kes ini, kami boleh mengawal maklumat ralat dengan menukar tahap ralat.
- Terdapat dua cara untuk menukar tahap ralat: gunakan fungsi ini_set untuk mengkonfigurasinya dalam kod, atau mengubah suai fail konfigurasi PHP php.ini. Berikut adalah pengenalan kepada dua kaedah tersebut.
Gunakan fungsi ini_set untuk menukar tahap ralat
Fungsi ini_set membolehkan kami menukar item konfigurasi PHP dalam kod buat sementara waktu. Kita boleh menggunakan fungsi ini untuk menukar tahap ralat PHP. Contoh kod berikut menunjukkan cara untuk menetapkan tahap ralat kepada E_ALL & ~E_NOTICE & ~E_WARNING, iaitu, matikan pemberitahuan dan gesaan amaran: // 设置错误级别为E_ALL & ~E_NOTICE & ~E_WARNING
ini_set('error_reporting', E_ALL & ~E_NOTICE & ~E_WARNING);
// 执行代码
echo $undefinedVariable;
Salin selepas log masuk
Dalam kod di atas, kami mula-mula menggunakan fungsi ini_set untuk menetapkan tahap ralat kepada E_ALL & ~E_NOTICE & ~E_WARNING, dan kemudian dengan sengaja mengakses pembolehubah tidak ditentukan $udefinedVariable. Memandangkan kami telah mematikan pemberitahuan dan amaran, PHP tidak akan memberi kami ralat notis Pembolehubah tidak ditentukan: undefinedVariable. Walau bagaimanapun, jika kami menetapkan tahap ralat kepada E_ALL, PHP akan membuang ralat berikut apabila mengakses pembolehubah tidak ditentukan:
Notice: Undefined variable: undefinedVariable in /path/to/file.php on line 5
Salin selepas log masuk
Oleh itu, dengan menukar tahap ralat, kami boleh mengawal sama ada PHP memaparkan jenis mesej ralat tertentu.
Ubah suai fail konfigurasi PHP php.ini untuk menukar tahap ralat
Selain menggunakan fungsi ini_set untuk mengkonfigurasi tahap ralat dalam kod, kita juga boleh lakukannya dalam konfigurasi fail konfigurasi php.ini. Fail konfigurasi php.ini berkuat kuasa untuk keseluruhan sistem PHP, dan nilai dalam item konfigurasi boleh diakses dalam setiap fail PHP. Berikut ialah item konfigurasi yang berkaitan dengan tahap ralat dalam fail konfigurasi php.ini: ; 显示所有错误
error_reporting = E_ALL
; 显示 E_NOTICE、E_WARNING 和 E_ERROR 级别的错误
error_reporting = E_ERROR | E_WARNING | E_NOTICE
; 显示所有错误,除了 E_NOTICE 级别的错误
error_reporting = E_ALL & ~E_NOTICE
Salin selepas log masuk
Untuk melindungi persekitaran pengeluaran, kami biasanya menetapkan tahap ralat kepada E_ALL & ~E_NOTICE & ~E_WARNING. Ini akan mematikan pemberitahuan dan amaran dan hanya menunjukkan ralat maut dan ralat penghuraian.
Ringkasan
Semasa proses pembangunan, kami ingin mencari dan menyelesaikan ralat seawal mungkin, jadi sangat berguna untuk menghidupkan semua gesaan peringkat ralat secara lalai. Walau bagaimanapun, dalam persekitaran pengeluaran, kami biasanya tidak mahu mendedahkan mesej ralat kepada pengguna, jadi kami perlu menukar tahap ralat untuk mengawal cara mesej ralat dipaparkan. Kita boleh mencapai fungsi ini melalui fungsi ini_set atau mengubah suai fail konfigurasi PHP php.ini. Dalam penggunaan sebenar, kita harus mengkonfigurasi tahap ralat secara fleksibel mengikut keperluan sebenar untuk memudahkan penyelesaian masalah dan penyelesaian ralat tepat pada masanya.
Atas ialah kandungan terperinci php menukar tahap ralat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!