PHP中最低级别的错误类型总结

 更新时间:2022-01-08 17:33:44   作者:佚名   我要评论(0)

序言:php错误就是会使脚本运行不正常的情况。
php的错误有很多种,包括warning、notice、deprecated、fetal error等。其中notice不叫通知,

序言:php错误就是会使脚本运行不正常的情况。

php的错误有很多种,包括warning、notice、deprecated、fetal error等。其中notice不叫通知,而叫通知级别的错误,warning也不叫警告,而叫警告级别的错误。

错误大致分为下面几个类型

  • deprecated是最低级别的错误,表示“不推荐,不建议”。比如PHP5中使用的ereg系列的正则匹配函数就会报此类错误。这种错误一般由于使用不推荐的、过时的函数或语法造成的。其虽不影响PHP正常流程,但一般情况下建议修正。
  • 其次是notice。这种错误一般是语法中存在不当的地方。如使用变量但是未定义就会报此错。最常见的是在数组索引是字符时没有加引号,PHP就视为一个常量,先查找常量表,找不到再视为变量。虽然PHP是脚本语言,语法要求不严,但是仍然建议对变量进行初始化。这种错误不影响PHP正常流程。
  • warning是级别比较高的错误,在语法中出现很不恰当的情况时才会报此错误,比如函数参数不匹配。这种级别的错误会导致得不到预期结果,需要修改代码。
  • 更高级别的错误是fetal error。这是致命错误,直接导致PHP进程终结,后面的代码不再执行。这种问题非改不可
  • 高级别的错误是语法解析错误prase error。上面提到的错误都属于PHP代码运行期间错误,而语法解析错误属于语法检查阶段错误,这将导致PHP代码无法通过语法检查。

这里只是列举了最常见的几个,php手册一共有16个级别的错误。

$date = date('Y-m-d');;
if(ereg("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})",$date,$regs)){
echo $regs[1]."-".$regs[2]."-".$regs[3];
}else{
echo "没有匹配到";
}
//Deprecated(在php5版本),Fatal error(在php7版本)

if($i > 2020){
echo '$i没有初始化!!!',PHP_EOL;
}
//Notice

$arr = array('arr'=>1,2,3);
echo $arr[arr];
//Warning

$res = array_sum($arr,1);
//Warning

echo fun();
//Fatal error

echo "最高级别错误';
//Parse error

上面的代码演示了php常见的几个错误级别,如果没有输出完整的话,可以看看php.ini配置文件看看是否如下设置

error_reporting=E_ALL | E_STRICT
display_errors=On

其中的error_reporting是指定错误级别,display_errors就不用说了。

到此这篇关于PHP中最低级别的错误类型总结的文章就介绍到这了,更多相关PHP中最低级别的错误类型有哪些内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • PHP中最低级别的错误类型总结

    PHP中最低级别的错误类型总结

    序言:php错误就是会使脚本运行不正常的情况。 php的错误有很多种,包括warning、notice、deprecated、fetal error等。其中notice不叫通知,
    2022-01-08
  • php?substr()去掉最后一位字符的实例方法

    php?substr()去掉最后一位字符的实例方法

    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑 php substr()去掉最后一位字符 substr() 函数可以从字符串的指定位置截取一定长度的字
    2022-01-08
  • php?redis的scan用法实例分析

    php?redis的scan用法实例分析

    在删除缓存的时候,我们在一些场景下需要批量删除,但不确定具体的key值,可通过匹配的方式进行查询后删除。 但是使用keys会导致redis服务器
    2022-01-08
  • php中的标量数据类型总结

    php中的标量数据类型总结

    PHP 的数据类型可以分为三大类,分别是标量数据类型、复合数据类型和特殊数据类型。 其中,标量数据类型是数据结构的最基础单元,只能存储一
    2022-01-08
  • Vue实现页面的局部刷新(router-view页面刷新)

    Vue实现页面的局部刷新(router-view页面刷新)

    利用Vue里面的provide+inject组合 首先需要修改App.vue。 <template> <!-- 公司管理 --> <div class="companyManage"> <router-
    2021-12-31
  • oracle中commit之后进行数据回滚的方法

    oracle中commit之后进行数据回滚的方法

    commit之后 第一种: 记住大概的时间,获取前大概时间的数据。 select * from Test as of timestamp to_timestamp('2021-12-08 09:30:56',
    2021-12-31
  • vue 中使用 bimface详情

    vue 中使用 bimface详情

    目录1. 安装 vue 脚手架2. 创建项目3. 引入 bimface 文件3.1 运行项目 3.2 引入 bimface 文件 4. 实现页面渲染4.1 修改 html 4.2 修改 CS
    2021-12-31
  • 关于SpringBoot使用@Async的总结

    关于SpringBoot使用@Async的总结

    目录SpringBoot使用@Async总结如下方式会使@Async失效SpringBoot实现异步(Async)接口1. 启动类引入@EnableAsync注解2. 建立异步任务类3. 建立
    2021-12-28
  • 强制去除Unity自动添加的Android隐私权限

    强制去除Unity自动添加的Android隐私权限

    提审Google Play会遇到隐私权限的问题,最好把非必要隐私权限清理干净。GF框架DebugComponent组件中涉及Input.location API调用,Unity打包时
    2021-12-28
  • JavaScript实现语音排队叫号系统

    JavaScript实现语音排队叫号系统

    目录介绍主要功能效果展示关键代码介绍 语音排队叫号系统广泛用于银行,餐饮,医院等场景。本系统采用Layui框架完成,前端体验不错,基于角色
    2021-12-28

最新评论