容 主要内 常见的错误和异常 错误处理 异常处理 隐藏错误的技巧
主要内容 ⚫ 常见的错误和异常 ⚫ 错误处理 ⚫ 异常处理 ⚫ 隐藏错误的技巧
PHP代码运行时,会发生各种错误:可能是语法的错误,通 常是程序员造成的编码错误或错别字;可能是拼写错误或语言中 缺少的功能(可能由于浏览器差异);可能是由于来自服务器或 用户错误输出而导致的错误。当然,也可能是由于许多其他不可 预知的因素
⚫ PHP代码运行时,会发生各种错误:可能是语法的错误, 通 常是程序员造成的编码错误或错别字;可能是拼写错误或语言中 缺少的功能(可能由于浏览器差异);可能是由于来自服务器或 用户错误输出而导致的错误。当然,也可能是由于许多其他不可 预知的因素
常见的错误和异常 1、拼写错误 PHP中常量和变量都是区分大小写的,例如把变量名abc写成 ABC,都会出现语法错误。 PHP中的函数名、方法名、类名不区分大小写,但建议与定义时 使用的名称相同。 另外,编写代码时有时需要输入中文字符,注意中英文字符的切 换,避免小括号、分号或者引号等出现的错误
常见的错误和异常 ⚫ 1、拼写错误 ⚫ PHP中常量和变量都是区分大小写的,例如把变量名abc写成 ABC,都会出现语法错误。 ⚫ PHP中的函数名、方法名、类名不区分大小写,但建议与定义时 使用的名称相同。 ⚫ 另外,编写代码时有时需要输入中文字符,注意中英文字符的切 换,避免小括号、分号或者引号等出现的错误
常见的错误和异常 2、单引号和双引号 单引号和双引号,都可以用来创建字符串。但是必须同时使用单引号 或者双引号,否则就会认为是非法定义的字符串。双引号的内容可以 被解释而且替换,而单引号的内容总被认为是普通字符。 另外,缺少单引号也经常出现问题。运行时会出错 3、括号使用混乱 由于括号层次比较多,因此可能会导致括号不匹配的错误,如下 if(((sa==Sb)and(sb=sc))and(Sc==sd) echo“正确使用括号的方法!〃;
常见的错误和异常 ⚫ 2、单引号和双引号 ⚫ 单引号和双引号,都可以用来创建字符串。但是必须同时使用单引号 或者双引号,否则就会认为是非法定义的字符串。双引号的内容可以 被解释而且替换,而单引号的内容总被认为是普通字符。 ⚫ 另外,缺少单引号也经常出现问题。运行时会出错。 ⚫ 3、括号使用混乱 ⚫ 由于括号层次比较多,因此可能会导致括号不匹配的错误,如下: ⚫ if((($a==$b)and ($b=$c) )and ($c==$d){ ⚫ echo “ 正确使用括号的方法!”; ⚫ }
常见的错误和异常 4、等号与赋值符号混淆 等号与赋值符号混淆的错误一般出现在i语句中,而且这种错误在php中 不会产生错误信息,所以在查找错误的时候不容易发现。例如 if (s=1) echo“没有找到相关信息!"; 5、缺少美元符号 PHP设置变量时要添加$,如果不添加美元符号就会引起解析错误,如: for($s=1;$s<=10;s++){ echo“缺少美元符号!"; 结果陷入无限循环状态
常见的错误和异常 ⚫ 4、等号与赋值符号混淆 ⚫ 等号与赋值符号混淆的错误一般出现在if语句中,而且这种错误在php中 不会产生错误信息,所以在查找错误的时候不容易发现。例如: ⚫ if(s=1) ⚫ echo “没有找到相关信息!”; ⚫ 5、缺少美元符号 ⚫ PHP设置变量时要添加$,如果不添加美元符号就会引起解析错误,如: for($s=1;$s<=10;s++){ ⚫ echo “缺少美元符号!”; ⚫ } 结果陷入无限循环状态
常见的错误和异常 6、调用不存在的常量和变量 调用没有声明的常量和变量,将会触发 NOTICE错误 例如7-1php 1甲 Notice: Undefined variable: abba in C: lwamp64lwwwl717-1-php on line 3 Call Stack ITime Memor Function Location 0.0006 358688|{main 7-1php:0
常见的错误和异常 ⚫ 6、调用不存在的常量和变量 ⚫ 调用没有声明的常量和变量,将会触发NOTICE错误。 ⚫ 例如7-1.php
常见的错误和异常 7、调用不存在的文件 如果调用不存在的文件。例如7-2php )Warning: include(mybook. txt): failed to open stream: No such file or directory in C: lwamp64lwwwl7 (7-2. php on line 2 Call Stack T Ime Memory Function Location 0.0009 358600{main() 7-2php:0 (! warning: include: Failed opening,mybook tst for inclusion (include _path; C: phplpear) in C: wamp64lwww\77-2.php on line 2 Call Stack Time Memory F unction Location 0.0009 358600{main .7-2php:0
常见的错误和异常 ⚫ 7、调用不存在的文件 ⚫ 如果调用不存在的文件。例如7-2.php
常见的错误和异常 8、环境配置的错误 环境配置不当也会给运行带来错误,例如操作系统、PHP配置文 件和PHP的版本等,如果配置不正确,就会提示文件打不开、操 作权限不具备和服务器无法连接等错误信息。 ●高版本的PHP在一定程度上可以兼容低版本的,但是高版本的 PHP编写的程序运行到低版本中就会发生意想不到的问题
常见的错误和异常 ⚫ 8、环境配置的错误 ⚫ 环境配置不当也会给运行带来错误,例如操作系统、PHP配置文 件和PHP的版本等,如果配置不正确,就会提示文件打不开、操 作权限不具备和服务器无法连接等错误信息。 ⚫ 高版本的PHP在一定程度上可以兼容低版本的,但是高版本的 PHP编写的程序运行到低版本中就会发生意想不到的问题
常见的错误和异常 9、数据库服务器连接错误 PHP应用程序经常会对数据库进行操作,在操作数据库之前,需 要连接数据库服务,如果用户名或者密码设置不正确,或者数据 库不存在,或者数据库属性不允许访问,都会在程序运行中出现 错误。 <?php 2Sconn-mysqli connect("localhost","root","root")i Warning: mysqli connectO: (HY000/1045): Access denied for user 'root'@'localhost(using password: ES)in C: wamp64www 7\7-3.php on line 2 Call Stack Time Memory Function Location 0.0010 358952mai( 17-3php:0 0.0011 359056mysqli connect() 17-3php:2
常见的错误和异常 ⚫ 9、数据库服务器连接错误 ⚫ PHP应用程序经常会对数据库进行操作,在操作数据库之前,需 要连接数据库服务,如果用户名或者密码设置不正确,或者数据 库不存在,或者数据库属性不允许访问,都会在程序运行中出现 错误
错误处理 1、 php init中的错误处理机制 在以上实例中,错误提示会显示错误的信息,如错误文件的行号 等,这是PHP最基本的错误报告机制。php.ini文件规定了错误的 显示方式,包括配置选项的名称、默认值和表述的含义等。首先, 了解PHP报告错误的级别 级别常量 错误报告描述 致命的运行时错误(它会阻止脚本的执行) E WARNING 运行时皆告(非致命的错课) E PARSE 从语法中解析错误 E NOTICE 运行时注意消息(可能是或者可能不是一个问题)
错误处理 ⚫ 1、php.ini中的错误处理机制 ⚫ 在以上实例中,错误提示会显示错误的信息,如错误文件的行号 等,这是PHP最基本的错误报告机制。php.ini文件规定了错误的 显示方式,包括配置选项的名称、默认值和表述的含义等。首先, 了解PHP报告错误的级别: