PHP中的三类错误类型分别是什么,错误级别怎样定义
Admin 2022-08-26 群英技术资讯 356 次浏览
程序员再开发过程中难免有些失误,或者由其他的原因也会造成错误的发生,那这时候我们就有必要了解一下PHP中有哪些错误类型以及有哪些错误级别了。
PHP 程序的错误发生一般分为三类,它们分别是语法错误、执行时错误和逻辑错误。
语法错误
语法错误是在编程中最容易碰到也是最容易解决的一种错误,例如:遗漏一个分号时就会显示错误信息。这种错误会停止程序的执行,并显示出错信息。我们可以根据错误信息改正程序,然后重新执行。
语法错误可以说是我们在编程过程中最容易碰到的一种错误类型了,同时我觉得他也是最容易解决的一种错误;例如:输入时忘记输入了一个分号或者函数语法弄错了。
<?php $a = 1 echo $a; ?>
在上述示例中,第二行最后少了一个分号,输出结果出现错误。
添加分号之后程序正常运行,输出结果为1。由此我们可以看出,当语法错误时,程序会停止向下继续执行,当语法错误解决之后,程序才可以继续执行。
运行时错误
运行时错误就是再程序运行过程中出现了错误,这时候需要注意的是,语法并没有错误,但是再执行的过程中,PHP会警告你程序有不合理的地方,与语法错误不同的是,程序会继续向下运行。
示例如下:
<?php $a = 1; $b = 0; $c = $a / $b; echo "$a / $b = $c"; ?>
在上述示例中,语法并没有错误,但是0不能作为除数,输出结果:
逻辑错误
逻辑错误的程序会正常的执行,但是输出的结果却不对,其根本原因发生在我们写的代码上,程序执行过程中没有报警信息。示例如下:
<?php $a = 1; $b = 2; if($a = $b){ echo '$a = $b'; }else{ echo '$a != $b'; } ?>
输出结果:
由上述示例我们可以看出,输出结果明显不对,不符合逻辑,出现逻辑错误时,是没有报警信息的。这需要我们一定要提高警惕,不要出现逻辑错误。
PHP中既有错误类型,也定义了错误级别,
PHP中的错误类型如下所示:
1 ---E_ERROR
---致命的运行时错误,一般是不可恢复的情况,例如内存分配导致的问题,后果是导致脚本终止、不再继续运行。
2 --- E_WARNING
--- 运行时警告(非致命错误),仅给出提示信息,但是脚本不会终止运行。
4 --- E_PARSE
--- 编译时语法解析错误,仅由分析器产生。
8 --- E_NOTICE
---运行时通知,表示脚本遇到可能会表现为错误的情况,但是在可以正常运行的脚本里面也可能会有类似的通知。
16 --- E_CORE_ERROR
--- 在 PHP 初始化启动过程中发生的致命错误,类似 E_ERROR,但是是由 PHP 引擎核心产生的。
64 --- E_COMPILE_ERROR
--- 致命编译时错误,类似 E_ERROR,但是是由 Zend 脚本引擎产生的。
128 --- E_COMPILE_WARNING
--- 编译时警告(非致命错误),类似 E_WARNING,但是是由 Zend 脚本引擎产生的。 。
1024 --- E_STRICT
--- 启用 PHP 对代码的修改建议,以确保代码具有最佳的互操作性和向前兼容性。
8192 --- E_DEPRECATED
--- 运行时通知,启用后将会对在未来版本中可能无法正常工作的代码给出警告。
16384 --- E_USER_DEPRECATED
--- 用户产生的警告信息,类似 E_DEPRECATED,但是是由用户自己在代码中使用 PHP 函数 trigger_error() 来产生的。
30719 --- E_ALL
--- E_STRICT 除外的所有错误和警告信息。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
安装开始在PHP中使用Redis前,我们需要确保已经安装了redis服务及PHPredis驱动,且你的机器上能正常使用PHP。
用法:1、dd()函数用于打印出给定的变量和结束脚本的运行,语法为“dd(变量)”;2、asset()函数用于引入静态文件,生成一个url,语法为“asset(文件路径)”;3、“base_path()”函数用于获取项目根目录路径。
这篇文章主要介绍了Laravel框架视图和模型操作方法,结合实例形式详细分析了laravel框架视图和模型的概念、原理、创建及使用方法,需要的朋友可以参考下
用一个中介对象来封装一系列的对象交互,使各对象不需要显式地相互引用从而使其耦合松散,而且可以独立地改变它们之间的交互,那要怎么独立改变php设计模式 Mediator (中介者模式)的交互呢?
ajax跨域请求问题要如何解决呢?下面给大家分享一个解决在ThinkPHP,解决AJAX跨域请求的实例,如果你也是同样的情况,可以参考以下解决方案。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008