Tahap laporan ralat
Jenis ralat
Tangkapan skrin paparan ralat PHP yang paling biasa, buku ini membantu anda merumuskan:
[Jenis Ralat tahap penguasaan] Kami membahagikan ralat yang paling biasa digunakan kepada tiga jenis:
错误类型 | 说明 |
---|---|
E_ERROR | 错误,文件直接中断 |
E_WARNING | 警告,问题比较严重。但是还会继续向下运行 |
E_NOTICE | 提示,有些小问题不会影响到程序。常发生在项目未定义 |
E_PARSE | 编译时语法解析错误。解析错误仅仅由分析器产生。 |
E_ALL | 所有的错误 |
E_STRICT | 启用PHP对代码的修改建议,以确保代码具有最佳的互操作性和向前兼容性。 |
E_DEPRECATED | 启用后将会对在未来版本中可能无法正常工作的代码给出警告。 |
Antara jenis di atas:
ralat adalah yang paling serius dan mesti diselesaikan . Jika tidak, program tidak boleh terus melaksanakan
amaran juga sangat penting. Tong juga mesti diselesaikan. Jika ia jelas dan disengajakan, tidak perlu berurusan dengannya.
perasan Anda boleh mengabaikannya. Tetapi dalam sesetengah syarikat, piawaian projek sangat tinggi. Ia juga mesti diselesaikan dalam projek dengan keperluan standard yang tinggi. Kerana notis akan menjejaskan kecekapan pelaksanaan PHP. Biasanya berlaku apabila fungsi tidak ditentukan dsb.
Kesilapan huraian merujuk kepada kesilapan tatabahasa dan kesilapan taip, yang mesti diselesaikan
Mewakili semua kesilapan semua jenis
[Fahami tahap jenis ralat] Daripada tiga jenis ini, terdapat beberapa item ralat lain yang perlu difahami:
错误类型 | 错误说明 |
---|---|
E_CORE_ERROR | 在PHP初始化启动过程中发生的致命错误。该错误类似E_ERROR,但是是由PHP引擎核心产生的 |
E_CORE_WARNING | PHP初始化启动过程中发生的警告 (非致命错误) 。类似 E_WARNING,但是是由PHP引擎核心产生的。 |
E_COMPILE_ERROR | 致命编译时错误。类似E_ERROR,但是是由Zend脚本引擎产生的。 |
E_COMPILE_WARNING | 编译时警告(非致命错误)。类似E_WARNING,但是是由Zend脚本引擎产生的 |
E_USER_ERROR | 用户自定义错误 |
E_USER_WARNING | 用户自定义警告 |
E_USER_NOTICE | 用户自定义提示 |
E_USER_DEPRECATED | 用户产少的警告信息。类似E_DEPRECATED,但是是由用户自己在代码中使用PHP函数trigger_error()来产生的。 |
E_RECOVERABLE_ERROR | 可被捕捉的致命错误。它表示发生了一个可能非常危险的错误,但是还没有导致PHP引擎处于不稳定的状态。 |
Dalam proses pembelajaran, fahami sahaja jenis-jenis di atas. Kerana anda pada asasnya tidak akan menemuinya Jika anda menemuinya, anda boleh menyemak buku ini atau manual untuk mengetahui.
error_reporting Jenis ralat laporan
error_reporting merujuk kepada pelaporan ralat. Terdapat juga parameter sedemikian dalam php.ini. parameter ini. Menentukan jenis ralat yang direkodkan, laporan dan paparan enjin PHP.
1. Tetapkan parameter error_reporting dalam php.ini. Jika parameter error_reporting ditetapkan kepada 0. Ralat dalam keseluruhan enjin PHP tidak akan dipaparkan, dikeluarkan atau direkodkan. Ia tidak akan direkodkan dalam pembalakan yang akan dibincangkan dalam bab seterusnya.
Jika kita ingin menunjukkan semua ralat kita boleh menulis :
error_reporting = E_ALL
Jika kita ingin menunjukkan semua ralat tetapi tidak termasuk gesaan, kita boleh Tulis parameter ini sebagai:
error_reporting = E_ALL & ~ E_NOTICE
Menunjukkan semua ralat tetapi tidak termasuk pembayang, keserasian dan keserasian masa hadapan. Ia boleh ditulis sebagai:
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
2. Dalam sesetengah kes, kami tidak mempunyai kebenaran untuk mengendalikan php.ini fail dan mahu mengawalnya Apa yang perlu dilakukan dengan error_reporting?
Pada permulaan fail xxxx.php yang sedang dijalankan, kita boleh menggunakan fungsi error_reporting() untuk mencapai matlamat.
Kod demo adalah seperti berikut:
<?php //关闭了所有的错误显示 error_reporting(0); //显示所有错误 //error_reporting(E_ALL); //显示所有错误,但不显示提示 //error_reporting(E_ALL & ~ E_NOTICE); ?>
Anda boleh mencuba kod di atas dan cuba menulis kod yang salah dengan sengaja. Sama ada ralat yang ditentukan akan dipaparkan dalam fail semasa.
[Kembangkan dan fahami titik pengetahuan]: Simbol @ ialah satu baris yang telah kita pelajari sebelum ini yang tidak memaparkan ralat. Tolong jangan gunakan simbol @ atau gunakannya dengan berhati-hati.
Mari baca fail yang tidak wujud ini menunjukkan proses pelaksanaan:
<?php //读取一个不存在的adsaf.txt文件,用@符抑制错误 @$fp = fopen('adsaf.txt','r'); ?>
Simbol @ kurang cekap proses pelaksanaannya dalam kernel PHP ialah:
rreee