开发模式与产品模式下的PHP报错处理详解-php教程

资源魔 25 0
顺序报错老是在劫难逃,虽然咱们书写代码时曾经分外小心。

正在开发php顺序时,咱们心愿遇到php报错,能够第一工夫展现给咱们,以便于调试。当顺序开发实现,成为正式产物时,咱们心愿将不预测到的报错信息记载到谬误日记中,而没有是将这些报错信息展现给用户,由于用户极有可能行使这些暴显露剧本门路、数据库信息或其余的报错信息进行一些毁坏性的黑客举动。

PHP 的谬误解决

php剧本正在执行进程中遇到谬误将以报错的方式解决,有些谬误正在报错之后会终止剧本持续执行,而有些没有会,详细请参阅手册。

php的报错解决形式依据如下设置装备摆设选项进行,这些设置装备摆设能够正在代码中申明以设置,也能够正在php.ini文件中设置。假如没有需求常常改动这些设置装备摆设,仍是倡议正在php.ini文件中设置,以使你的代码更清新简约。

# 能否打印谬误信息到阅读器/饬令行界面
# 开发模式下倡议开启,产物模式下激烈倡议封闭
ini_set('display_errors', 'On');
# 能否记载谬误信息到日记
# 开发模式以及产物模式下都倡议开启
ini_set('log_errors', 'On');
# 指定谬误信息日记文件,若开启了 log_errors 选项,记患上指定日记文件地位
# 要确保执行 php 剧本的零碎用户领有该文件的 write 权限,不然日记无奈被写入
ini_set('error_log', '/usr/local/php/errors.log');
# 该选项用以设定谬误陈诉的等级
# 同等于 error_reporting(E_ALL) 
# 无论开发模式仍是产物模式下都倡议开到E_ALL(陈诉一切的谬误信息)
# 产物模式下也需求设置此选项,由于封闭了 display_errors 并开启了 log_errors
# 以是阅读器/饬令行界面没有会因而暴露报错信息
ini_set('error_reporting', E_ALL);

除了此以外,php 还给开发者提供了正在代码中将自界说的谬误信息记载到谬误日记文件的内置函数:

bool error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] )

必选参数是 message ,挪用此函数会将 message 写入 php.ini 中界说的 error_log 文件中。

用户自界说的谬误解决

另外,用户能够经过函数:

mixed set_error_handler ( callable $error_handler [, int $error_types = E_ALL | E_STRICT ] )

以自界说的形式来解决剧本运转时呈现的谬误,假如用户注册了 error_handler 并指定了 error_types ,那末当发作这些 error_types 的谬误时,将绕过 php的规范谬误解决顺序

(也就是说既没有会输入谬误信息,也没有会记载谬误信息日记),而是执行 error_handler 中的解决顺序。

该函数的具体用法请参阅手册(https://www.php.net/manual/zh/function.set-error-handler.php)

相干文章教程保举:php教程

以上就是开发模式与产物模式下的PHP报错解决详解的具体内容,更多请存眷资源魔其它相干文章!

标签: php php开发教程 php开发资料 php开发自学

抱歉,评论功能暂时关闭!