首页 > 编程语言 >php错误处理

php错误处理

时间:2023-07-24 21:24:32浏览次数:36  
标签:PHP 函数 错误 die WARNING error 错误处理 php

1、介绍

在 PHP 中,默认的错误处理很简单。一条错误消息会被发送到浏览器,这条消息带有文件名、行号以及描述错误的消息。

有三种不同的处理方法:

  • die函数
  • 自定义错误和错误触发器
  • 错误报告

2、 die函数

die() 函数输出一条消息,并退出当前脚本。

die(status)

如果 status 是字符串,则该函数会在退出前输出字符串。

如果 status 是整数,这个值会被用作退出状态。退出状态的值在 0 至 254 之间。退出状态 255 由 PHP 保留,不会被使用。状态 0 用于成功地终止程序。

注释:如果 PHP 的版本号大于等于 4.2.0,那么在 status 是整数的情况下,不会输出该参数。

$site = "http://www.w3school.com.cn/";
fopen($site,"r")
or die("Unable to connect to $site");

3、创建自定义错误处理器

3.1 自定义处理函数

error_function(error_level,error_message, error_file,error_line,error_context)
  • error_level 必需。为用户定义的错误规定错误报告级别。必须是一个数字。参见下面的表格:错误报告级别。
  • error_message 必需。为用户定义的错误规定错误消息。
  • error_file 可选。规定错误发生的文件名。
  • error_line 可选。规定错误发生的行号。
  • error_context 可选。规定一个数组,包含了当错误发生时在用的每个变量以及它们的值。

3.2 错误报告级别

值	常量	描述
2	E_WARNING	非致命的 run-time 错误。不暂停脚本执行。
8	E_NOTICE	run-time 通知。在脚本发现可能有错误时发生,但也可能在脚本正常运行时发生。
256	E_USER_ERROR	致命的用户生成的错误。这类似于程序员使用 PHP 函数 trigger_error() 设置的 E_ERROR。
512	E_USER_WARNING	非致命的用户生成的警告。这类似于程序员使用 PHP 函数 trigger_error() 设置的 E_WARNING。
1024	E_USER_NOTICE	用户生成的通知。这类似于程序员使用 PHP 函数 trigger_error() 设置的 E_NOTICE。
4096	E_RECOVERABLE_ERROR	可捕获的致命错误。类似 E_ERROR,但可被用户定义的处理程序捕获。(参见 set_error_handler())
8191	E_ALL	所有错误和警告。(在 PHP 5.4 中,E_STRICT 成为 E_ALL 的一部分)

3.3 设置错误处理函数

// 设置错误处理函数
set_error_handler("customError",E_USER_WARNING);
  • customError是自定义的错误处理函数

3.4 触发错误

基于trigger_error函数

trigger_error("变量值必须小于等于 1",E_USER_WARNING);

(1)参数1为字符串类型,必要参数,表示错误提示

(2)参数2为非必要参数,能够规定所触发的错误类型。

4、错误记录

在默认的情况下,根据在 php.ini 中的 error_log 配置,PHP 向服务器的记录系统或文件发送错误记录。通过使用 error_log() 函数,您可以向指定的文件或远程目的地发送错误记录。

标签:PHP,函数,错误,die,WARNING,error,错误处理,php
From: https://www.cnblogs.com/wd404/p/17578382.html

相关文章

  • php异常处理
    1、介绍异常用于在指定的错误发生时改变脚本的正常流程。PHP5提供了一种新的面向对象的错误处理方法。异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程。这种情况称为异常。2、抛出异常thrownewException("Valuemustbe1orbelow");当异常被抛出时,其后的......
  • php文件上传
    1、前端<formaction="upload_file.php"method="post"enctype="multipart/form-data">    <labelfor="file">文件名:</label>    <inputtype="file"name="file"id="file">......
  • php 文件包含
    include和require除了处理错误的方式不同之外,在其他方面都是相同的:require生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本会停止执行。include生成一个警告(E_WARNING),在错误发生后脚本会继续执行。include'filename';或者require'filename'; ......
  • php cookie与session
    1、cookie1.1创建cookiesetcookie(name,value,expire,path,domain);注释:在发送cookie时,cookie的值会自动进行URL编码,在取回时进行自动解码。(为防止URL编码,请使用setrawcookie()取而代之。)setcookie("user","runoob",time()+3600);1.2获取cookie//输出coo......
  • sublime运行php文件
    sublime运行php文件使用sublime打开一个php文件然后Tools—>BuildSystem—>NewBuildSystem将以上打开的文件内容修改成以下内容:{"cmd":["C:/phpStudy/PHPTutorial/php/php-5.4.45/php.exe","$file"],"file_regex":"......
  • 9个PHP库简介和下载
    9个非常有用的PHP类库,相信一定可以为你的WEB开发提供更好和更为快速的方法。 1.ReCAPTCHAThereCAPTCHA库让你可以为网站创建高级的CAPTCHA系统,这个系统其实是用来生成验证信息的,甚至包括语音验证。当然还有reCAPTCHA服务可以使用,其提供易用的免费API,值得在你的网站试试。......
  • PHP数组缓存:三种方式JSON、序列化和var_export的比较
    使用PHP的站点系统,在面对大数据量的时候不得不引入缓存机制。有一种简单有效的办法是将PHP的对象缓存到文件里。下面我来对这3种缓存方法进行说明和比较。第一种方法:JSONJSON缓存变量的方式主要是使用json_encode和json_decode两个php函数。json_encode可以将变量变成文本格式,这......
  • php魔术常量
    PHP向它运行的任何脚本提供了大量的预定义常量。不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。有八个魔术常量它们的值随着它们在代码中的位置改变而改变。 1、__LINE__文件中的当前行号。 2、__FI......
  • php超级全局变量
    1、介绍PHP中预定义了几个超级全局变量(superglobals),这意味着它们在一个脚本的全部作用域中都可用。你不需要特别说明,就可以在函数及类中使用。PHP超级全局变量列表:$GLOBALS、$_SERVER、$_REQUEST、$_POST、$_GET、$_FILES、$_ENV、$_COOKIE、$_SESSION2、$GLOBALS$GLOBALS......
  • php类和对象
    php很多语法和java类似,主要区分不同1、类和对象(1)class关键字创建类(2)new关键字创建对象,如果没有参数可以忽略()(3)->作为属性或方法的调用 <?phpclassstu{var$name;functionecho_name($param){echo$param;}}$stu_1=newstu;......