Rumah > Artikel > pembangunan bahagian belakang > Permudahkan penyahpepijatan dengan PHP error_reporting
Hari ini, kita akan belajar cara menggunakan fungsi error_reporting
untuk nyahpepijat dalam PHP. error_reporting
函数进行调试。
error_reporting
函数允许您配置在 PHP 脚本中报告哪些错误。事实上,当您在 PHP 脚本中使用 error_reporting
函数时,它只是在运行时设置 error_reporting
指令。如果您了解 php.ini 配置文件,它提供了许多用于不同目的的配置指令,error_reporting
指令就是其中之一。具体来说,error_reporting
指令允许您在 PHP 脚本中设置错误报告级别。
在这篇简短的文章中,我们将介绍 error_reporting
函数的基础知识,并将讨论如何在日常 PHP 开发中有效地使用它。
让我们快速浏览一下 error_reporting
函数的语法。
error_reporting(int $error_level = null): int
它需要一个参数,允许您传递要设置的错误级别。它是一个可选参数,因此如果您不传递它,它应该返回当前的错误报告级别。
您可以在此参数中传递位掩码或命名常量。但是,建议传递命名常量以兼容未来的 PHP 版本。另外,如果您使用命名常量,它也会提高代码的可读性。
您可以在 error_reporting
函数的第一个参数中传递不同的错误常量。以下是所有常量的快速列表。
E_ERROR
: 显示致命运行时错误E_WARNING
:显示运行时警告E_PARSE
:显示编译时解析错误E_NOTICE
:显示运行时通知E_CORE_ERROR
: 显示 PHP 初始启动期间发生的致命错误E_CORE_WARNING
:显示 PHP 初始启动期间发生的警告E_COMPILE_ERROR
: 显示致命编译时错误E_COMPILE_WARNING
:显示致命编译时警告E_USER_ERROR
:显示用户生成的错误消息E_USER_WARNING
:显示用户生成的警告消息E_USER_NOTICE
:显示用户生成的通知消息E_STRICT
:建议更改您的代码,以确保最佳的互操作性和前向兼容性E_RECOVERABLE_ERROR
:显示可捕获的致命错误E_DEPRECATED
:显示有关在未来版本中不起作用的代码的警告E_USER_DEPRECATED
:与 E_DEPRECATED
类似,但它只显示用户生成的警告消息E_ALL
:显示所有错误、警告和通知每个常量都允许您设置不同级别的错误报告。在下一节中,我们将了解如何在日常 PHP 开发中使用 error_reporting
函数。
error_reporting
函数在上一节中,我们了解了 error_reporting
函数的语法。在本节中,我们将了解如何在 PHP 脚本中使用它。
让我们快速浏览一下以下示例。
<?php error_reporting(E_ALL); ini_set('display_errors', 1); echo $foo; ?>
在上面的示例中,我们在 error_reporting
函数的第一个参数中传递了 E_ALL
常量,因此,它将显示脚本中的所有错误、警告和通知。如果运行上面的脚本,它应该显示以下错误。
Notice: Undefined variable: foo in /web/demo/error_reporting.php on line 4
由于我们使用 $foo
变量而没有事先定义它,因此它会抛出一条通知,通知您应该在实际使用它之前定义 $foo
变量。
或者,您也可以传递 -1
而不是 E_ALL
常量,如以下代码片段所示,它会显示所有可能的错误。
<?php error_reporting(-1); ?>
E_ALL
常量对于调试著名的 WSOD(死机白屏)错误非常有用。
让我们看一下下面的例子。
<?php error_reporting(E_ALL & ~E_NOTICE); ini_set('display_errors', 1); echo $foo; ?>
当您使用 error_reporting
函数时,您可以使用 &
、|
和 ~
等运算符来忽略和过滤特定类型的错误。在上面的示例中,我们想要显示除通知之外的所有类型的错误,因此,我们在 E_NOTICE
常量前面使用了 ~
运算符。如果运行上面的脚本,它不会显示仅使用 E_ALL
常量时应显示的通知。
在本节中,我们将了解如何仅显示特定类型的错误。让我们快速浏览一下以下示例。
<?php error_reporting(E_WARNING | E_NOTICE); ini_set('display_errors', 1); include "foo_bar.php"; echo $foo; ?>
在上面的示例中,我们指示 error_reporting
函数希望仅显示警告和通知。正如您所看到的,我们使用了 |
error_reporting
membolehkan anda mengkonfigurasi ralat mana yang dilaporkan dalam skrip PHP. Malah, apabila anda menggunakan fungsi error_reporting
dalam skrip PHP, ia hanya menetapkan arahan error_reporting
pada masa jalan. Jika anda tahu tentang fail konfigurasi php.ini, ia menyediakan banyak arahan konfigurasi untuk tujuan yang berbeza dan arahan error_reporting
adalah salah satu daripadanya. Khususnya, arahan error_reporting
membolehkan anda menetapkan tahap pelaporan ralat dalam skrip PHP. #🎜🎜#
#🎜🎜#Dalam artikel pendek ini, kami akan memperkenalkan asas fungsi error_reporting
dan membincangkan cara menggunakannya dengan berkesan dalam pembangunan PHP harian. #🎜🎜#
error_reporting
. #🎜🎜#
rrreee
#🎜🎜#Ia memerlukan parameter yang membolehkan anda melepasi tahap ralat yang anda ingin tetapkan. Ia adalah parameter pilihan, jadi jika anda tidak melepasinya, ia harus mengembalikan tahap pelaporan ralat semasa. #🎜🎜#
#🎜🎜#Anda boleh menghantar bitmask atau dinamakan pemalar dalam parameter ini. Walau bagaimanapun, adalah disyorkan untuk menghantar pemalar dinamakan untuk keserasian dengan versi PHP masa hadapan. Selain itu, jika anda menggunakan pemalar bernama, ia juga meningkatkan kebolehbacaan kod anda. #🎜🎜#
#🎜🎜#Anda boleh menghantar pemalar ralat yang berbeza dalam parameter pertama fungsi error_reporting
. Di bawah ialah senarai pantas semua pemalar. #🎜🎜#
E_ERROR
: Paparkan ralat masa jalan yang membawa mautE_WARNING
: Paparkan amaran masa jalanE_PARSE
: Memaparkan ralat penghuraian masa kompilasiE_NOTICE
: Paparkan pemberitahuan masa jalanE_CORE_ERROR
: Memaparkan ralat maut yang berlaku semasa permulaan permulaan PHPE_CORE_WARNING
: Memaparkan amaran yang berlaku semasa permulaan permulaan PHPE_COMPILE_ERROR
: Memaparkan ralat masa kompilasi yang membawa mautE_COMPILE_WARNING
: Paparkan amaran masa kompilasi mautE_USER_ERROR
: Memaparkan mesej ralat yang dijana penggunaE_USER_WARNING
: Memaparkan mesej amaran yang dijana penggunaE_USER_NOTICE
: Paparkan mesej pemberitahuan yang dijana penggunaE_STRICT
: Mengesyorkan perubahan pada kod anda untuk memastikan kesalingoperasian optimum dan keserasian ke hadapanE_RECOVERABLE_ERROR
: Memaparkan ralat maut yang boleh ditangkapE_DEPRECATED
: Tunjukkan amaran tentang kod yang tidak akan berfungsi dalam versi akan datangE_USER_DEPRECATED
: Sama seperti E_DEPRECATED
, tetapi ia hanya memaparkan mesej amaran yang dijana penggunaE_ALL
: Tunjukkan semua ralat, amaran dan pemberitahuanerror_reporting
dalam pembangunan PHP harian. #🎜🎜#
error_reporting
error_reporting
. Dalam bahagian ini, kita akan melihat cara menggunakannya dalam skrip PHP. #🎜🎜#
E_ALL
dalam parameter pertama fungsi error_reporting
, oleh itu, ia akan memaparkan semua ralat dalam skrip, Amaran dan Notis. Jika anda menjalankan skrip di atas, ia sepatutnya menunjukkan ralat berikut. #🎜🎜#
rrreee
#🎜🎜# Memandangkan kami menggunakan pembolehubah $foo
tanpa mentakrifkannya terlebih dahulu, ia akan menghantar pemberitahuan bahawa anda harus mentakrifkan pembolehubah $foo
sebelum benar-benar menggunakannya . #🎜🎜#
#🎜🎜#Sebagai alternatif, anda boleh menghantar -1
dan bukannya pemalar E_ALL
, seperti yang ditunjukkan dalam coretan kod berikut, yang akan memaparkan semua kemungkinan ralat. #🎜🎜#
rrreee
Pemalar #🎜🎜#E_ALL
sangat berguna untuk menyahpepijat ralat WSOD (White Screen of Death) yang terkenal. #🎜🎜#
error_reporting
, anda boleh menggunakan operator seperti &
, |
dan ~
untuk mengabaikan dan menapis jenis ralat tertentu. Dalam contoh di atas, kami ingin memaparkan semua jenis ralat kecuali pemberitahuan, jadi kami menggunakan operator ~
di hadapan pemalar E_NOTICE
. Jika anda menjalankan skrip di atas, ia tidak menunjukkan pemberitahuan yang sepatutnya ditunjukkan jika anda hanya menggunakan pemalar E_ALL
. #🎜🎜#
error_reporting
bahawa kami hanya mahu amaran dan pemberitahuan dipaparkan. Seperti yang anda lihat, kami menggunakan operator |
supaya ia akan menunjukkan kedua-dua jenis ralat. #🎜🎜#Ini adalah cara menggunakan fungsi error_reporting
dan pelbagai jenis pemalar ralat untuk nyahpepijat dalam pembangunan PHP harian. error_reporting
函数和不同类型的错误常量进行调试。
今天,我们讨论了如何使用 PHP 中的 error_reporting
error_reporting
dalam PHP untuk menyahpepijat ralat dalam skrip PHP. Kami membincangkan cara ia boleh digunakan untuk memaparkan ralat pada tahap yang berbeza semasa pembangunan. 🎜Atas ialah kandungan terperinci Permudahkan penyahpepijatan dengan PHP error_reporting. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!