【常见的错误类型】

① 语法错误

【例1】程序语句结尾少了';'

<?php
$username = "dee"   //少了分号;
echo $username;

输出:

( ! ) Parse error: syntax error, unexpected T_ECHO in D:\practise\php\Error\error1.php on line 3

Parse error:解析错误

syntax error:语法错误

【PHP 中的错误级别】16 种

E_ERROR 致命的运行时错误。终止程序执行。
E_WARNING (运行时警告)非致命的 run-time 错误。不暂停脚本执行。
E_PARSE

语法解析错误

E_NOTICE 通知(注意),表示可能表现为错误的情况
E_CORE_ERROR 在 PHP 初始化启动过程中发生的致命错误
E_CORE_WARNING PHP 初始化启动过程中发生的警告
E_COMPILE_ERROR 致命编译错误
E_COMPILE_WARNING

编译时警告

E_USER_ERROR

用户产生的错误信息,类似E_ERROR,但是是由于用户自己在代码中使用trigger_error()函数产生的

E_USER_WARNING

用户产生的警告信息,类似E_WARNING,但是是由用户自己在代码中使用trigger_error()函数产生的

E_USER_NOTICE

用户产生的通知信息,类似E_NOTICE,但是是由用户自己在代码中使用trigger_error()函数产生的

E_STRICT

启动PHP对代码的修改建议,以确保代码具有最佳的互操作性和向前兼容性

E_DEPRECATED

运行时通知,启动后将会对在未来版本中可能无法正常工作的代码给出警告

E_USER_DEPRECATED

用户产生的警告信息,类似E_DEPRECATED,但是是通过trigger_error()函数产生的

E_ALL

所有的错误和警告信息

E_RECOVERABLE_ERROR

可被捕获的指明错误它表示可能发生了一个可能非常危险的错误,但是还没有导致PHP 引擎处于不稳定的状态。如果该错误没有被用户自定义句柄捕获(见set_error_handler()),将成为一个E_ERROR,从而脚本会终止运行。

a. Deprecated 最低级别的错误 —— 不推荐 或 不建议

【例2】

<?php
if(ereg('dee', 'welcome to dee\'s medows', $matches)){print_r($matches);
}else{echo 'not found';
}

输出:

( ! ) Deprecated: Function ereg() is deprecated in D:\practise\php\Error\error1.php on line 2
Array ( [0] => dee )

deprecated:不推荐的,过时的(可以使用 preg_match 代替 ereg 方法),但同时程序也输出了结果。

【例3】(PHP 5.3 以上版本)

<?php
echo mysql_escape_string('\' or 1 = 1 #');

输出:

Deprecated:mysql_escape_string():This Function id deprecated: use mysql_real_escape_string() instead. in ****
\' or 1 = 1 #

b. Notice 通知级别的错误 —— 语法中存在一些不当的地方。PHP 是弱类型语言,变量可以不声明直接使用,当直接使用某个变量的时候,就会发送一个 notice 级别的错误告诉你这个变量没有声明:undefined variable;再如数组索引,如果下标是字符串类型时,在使用数组索引(下标)时没有加引号,php 则会将其当成常量解析,如果没有找到这个常量,才将其当成下标去解析。

【例4】

<?php
echo $dee;
//程序继续执行
echo 'continue';

输出:

( ! ) Notice: Undefined variable: dee in D:\practise\php\Error\error1.php on line 2
continue

【例5】

<?php
$userInfo = array('username'=>'dee', 'age'=>28);
echo $userInfo['username'];
echo '<hr>';
echo $userInfo[age]; //会产生 notice 级别的错误
echo '<hr>';echo 'continue';

输出:

dee
( ! ) Notice: Use of undefined constant age - assumed 'age' in D:\practise\php\Error\error1.php on line 5
28
continue

Use of undefined constant age :未定义的常量 age

所以这种写法是不规范的。

c. Warning 警告级别的错误—— 语法中不恰当的地方;或者函数希望得到两个参数,但是调用函数时只传递了一个参数;或者参数的类型,参数的值不正确

【例6】

<?php
settype($var, 'int'); // 变量 var 的类型设置为 int
var_dump($var);//设置一个不存在的类型,warning
settype($var, 'dee');
var_dump($var);echo 'continue';

输出:

int 0
( ! ) Warning: settype() [function.settype]: Invalid type in D:\practise\php\Error\error1.php on line 6int 0
continue

Invalid type:非法的类型

(未完:Fatal 等)

② 环境错误

③ 逻辑错误

转载于:https://www.cnblogs.com/dee0912/p/4507107.html

PHP 错误与异常 笔记与总结(1)错误(Deprecated,Notice,Warning)相关推荐

  1. PHP 错误与异常 笔记与总结(6)将错误日志保存在系统日志中

    [将错误记录到系统日志中] 在 php.ini 中将 error_log 设置为: error_log = syslog 或者在运行时使用 ini_set() 函数设置. [例1] <?php ...

  2. PHP 错误与异常 笔记与总结(12 )异常

    ① 异常的概念:异常和错误的区别 PHP 部分借鉴了 C++ 和 JAVA 中的异常处理机制.PHP 中的异常是指 程序运行和预期不太一致,与错误是两个不同的概念. ② 异常的语法结构 [例1] 1 ...

  3. PHP 错误与异常 笔记与总结(14 )记录和发送异常信息

    当发生异常时,把异常信息记录到日志文件中: 1 <?php 2 header('content-type:text/html; charset=utf-8'); 3 class LogExcep ...

  4. 【python】错误、异常和文件---复习笔记

    错误.异常和文件 1. 异常处理 错误指的是代码有语法问题,无法解释运行,必须改正后才能运行 如果代码没有语法问题,可以运行,但会出运行时的错误,例如除零错误,下标越界等问题,这种在运行期间检测到的错 ...

  5. JavaScript错误与异常

    JavaScript错误与异常 下面是对JavaScript错误与异常的整理,希望可以帮助到有需要的小伙伴. 1.错误与异常是什么 错误,指程序中的非正常运行状态,在其它编程语言中称为"异常 ...

  6. Python入门笔记(17):错误、异常

    一.什么是错误,什么是异常,它们两者区别 这里解释如下:个人觉得很通俗易懂 错误是指在执行代码过程中发生的事件,它中断或干扰代码的正常流程并创建异常对象.当错误中断流程时,该程序将尝试寻找异常处理程序 ...

  7. Python学习笔记:错误和异常

    本文来自:入门指南 开胃菜参考:开胃菜 使用Python解释器:使用Python解释器 本文对Python的简介:Python简介 Python流程介绍:深入Python流程 Python数据结构:P ...

  8. 韩顺平php视频笔记80 81 错误日志 异常捕获

    php错误日志保存 保存错误日志的用处是便于,后续分析. 基本方法是使用 error_log来实现. 基本用法是: //自定义错误函数 function  my_error3($errno,$errm ...

  9. Python学习笔记之九——错误与异常

    Python 有两种常见的错误:语法错误和异常. 语法错误 语法错误也称之为解析错误.例如: >>> while True print('Hello world') File &qu ...

  10. 2023.03.09学习笔记----错误和异常

    Python有两种错误:语法错误和异常 语法错误就是格式不规范,没有按照规定的格式来写:如:缺少冒号:,缺少括号()等 异常就是即使不是程序,也有错误那种:如数字和字符串相加,分母为零等 异常处理(t ...

最新文章

  1. a为数组名。sizeof(a)和sizeof(a)有什么区别?结果是?
  2. 真实感皮肤渲染技术总结
  3. 【转】如何调整一个 IFrame 到其内容的大小不显示滚动条[微软帮助]
  4. Excel Txt 字符集设置
  5. Mybatis: 接口编程的实现
  6. Centos7——NFS(Network File System)服务
  7. 尚硅谷SpringCloud2020简单学习记录(个人用)33-39集
  8. 约翰·冯·诺依曼及冯诺伊曼式计算机简介
  9. VMware硬盘不足踩坑记录:扩容分区 + 删除.cache文件夹
  10. 免费版企业级杀毒软件mcafee使用报告。
  11. LLVM项目的目录布局介绍
  12. 正多边形和多面体的对称群
  13. 名创优品寻求香港上市:叶国富夫妇持股64% 有77%投票权
  14. 这就是2020:全球云计算十一大年度话题盘点
  15. 高德地图实现租房学习
  16. xgboost 自定义评价函数(metric)与目标函数
  17. SQL查询选修了全部课程的学生姓名
  18. python使用ffmpeg去掉视频片头和片尾
  19. 母亲节html页面,css3母亲节主题文字动画特效
  20. 光电耦合器型号(FOD3120,TLP350,TLP250)介绍应用实例精讲

热门文章

  1. Linux系统用户账号的管理
  2. SQL Server 2008入门系列之设置数据库服务器的访问权限
  3. 自定义表单-列表字段的数据源绑定
  4. Android成长的幕后推手:工程师鲁宾
  5. [个人备忘]SpringMVC+Mybatis+freemarker后台代码生成器自动生成新建表格数据的增删改查处理
  6. 多出去面试,好处多多!
  7. 华为、阿里、京东停止社招转外包:头部公司们的谋局
  8. 你们公司的业务是部署在什么平台?
  9. 站长之家bbs.chinaz.com宣布将于2018年7月15日永久关站
  10. 大神教你轻松驾驭Tomcat