ImageVerifierCode 换一换
格式:PPT , 页数:49 ,大小:496.01KB ,
文档编号:4372280      下载积分:25 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-4372280.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(php教程-php面向对象汇总课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

php教程-php面向对象汇总课件.ppt

1、lPHP中的错误信息 lphp.ini中配置错误消息 lphp中错误消息处理 lphp代码中调整错误级别 l自定义错误处理 lPHP5中的SPL模块 l什么是SPL lspl.php中的异常处理类 lspl.php中的其它异常类 lPHP5异常捕获 l异常实例 l抛出异常 l在代码中捕获异常 l在代码中捕获异常(2)l一个catch块处理多种异常 l多个catch块处理异常 l异常处理块嵌套 l异常向外抛出 lPHP5自定义异常 l 自定义异常 l异常处理实例 l验证实例 l验证实例代码PHP中的错误信息中的错误信息 lphp.ini中配置错误消息 l在PHP4中,没有异常 Exception

2、这个概念,只有 错误Error。我们可以通过修改php.ini 文件来配置用户端输出的错误信息。l在php.ini 中,一个分号;表示注释。lPhp.ini 将能够显示的错误类型分为如下种类l在php.ini 中error_reporting 控制输出到用户端的消息种类。l以下几种是php.ini 中推荐的几种配置。lerror_reporting=E_ALL l表示输出所有的信息。lerror_reporting=E_ALL&E_NOTICE 表示输出所有的错误,除了提示。lerror_reporting=E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR

3、|E_CORE_ERROR l表示输出所有的 ERROR 信息。l在php.ini 中,display_errors可以设置是否将以上设置的错误信息输出到用户端。ldisplay_errors=On 输出到用户端(调试代码时候,打开这项更方便)ldisplay_errors=OFF 消息将不会输出到用户端(最终发布给用户时记得改成off)php中错误消息处理中错误消息处理 l在php中,对于错误处理非常的宽松。php系统会尽量让程序运行下去,除非遇到致命错误。l再次提示:如果不想显示错误信息给用户看到,设置php.ini中 ldisplay_errors=OFF php代码中调整错误级别代码中

4、调整错误级别 l除了在php.ini文件中可以调整错误消息的显示级别外,在php代码中也可以自定义消息显示的级别。lPHP提供了一个方便的调整函数。lint error_reporting(int level)l使用这个函数可以定义当前php页面中错误消息的显示级别。l参数level使用了二进制掩码组合的方式。自定义错误处理自定义错误处理 l在php中,可以自定义对错误处理的方式。l首先要自定义一个错误处理函数,然后使用 set_error_handler()函数向系统声明错误处理函数。代码中产生的错误就会使用这个错误处理函数了。l使用trigger_error()函数,可以触发一个error

5、。l例如trigger_error(age you input must=0,E_USER_ERROR),触发自己的错误信息。l?phplfunction myErrorHandler($errno,$errstr,$errfile,$errline)lswitch($errno)lcase E_USER_ERROR:lecho My ERROR$errno$errstrn;lecho Fatal error in line$errline of file$errfile;lecho,PHP .PHP_VERSION.(.PHP_OS.)n;lecho Aborting.n;exit(1);l

6、break;lcase E_USER_WARNING:lecho My WARNING$errno$errstrn;lbreak;lcase E_USER_NOTICE:lecho My NOTICE$errno$errstrn;lbreak;ldefault:lecho Unknown error type:$errno$errstrn;lbreak;lllset_error_handler(myErrorHandler);/定义错误处理函数.l$age=-100;/假设出现了负数的年龄,这明显是错误的。lif($age=0”,E_USER_ERROR);/触发错误;ll?PHP5中的中的S

7、PL模块模块 l在PHP5中有一个独特的部分SPL-StandardPHPLibrary Modules(PHP标准库)。l在SPL文档中这样说明的:lSPL PHP标准库是用来解决标准问题并实现一些高效数据访问的接口和类的集合。你会发现这些类用PHP代码编写在 sql.php文件中,或在对应例子、内核的.inc 文件中。基于这些内核的实现或在示例目录下的,也是一些.php文件。spl.php中的异常处理类中的异常处理类 l从PHP5.0开始,在SPL中引入了异常处理类。lNotice:异常与错误在PHP中是两个完全不同的概念。l在PHP源码包中能找到这个文件 spl.php,在spl.php

8、中定义了一个异常类 Exception。l在这个类中,定义了一些属性如下:lprotected$message;l存储异常信息的变量。lprivate$string;l格式化过以后的异常信息。lprotected$code;通过构造函数传递的 异常代码。lprotected$file;l产生异常的php文件的文件名。lprotected$line;l引起异常的代码在php文件中所在的行数。lprivate$trace;l引起异常后,包含相关信息的一个数组。l构造函数如下:lfunction _construct($message=NULL,$code=0)lif(func_num_args()

9、/func_num_args()返回参数数量 l$this-message=$message;l l$this-code=$code;/错误代码默认是0;l$this-file=_FILE_;/文件名 l$this-line=_LINE_;/行号 l$this-trace=debug_backtrace();/返回一个包含多个元素 l$this-string=StringFormat($this);/格式化字符串 l l其中还包含了_clone()方法和对应这些属性的geter方法。spl.php中的其它异常类中的其它异常类 l在SPL中还定义了其它的异常类,以对应不同的异常类型。这些异常类都

10、是Exception类的子类。l在Exception类有两个直接子类 LogicException 和 RuntimeException,分别表示逻辑异常和执行异常。lLogicException又衍生出其它的逻辑异常子类。lclass LogicException extends Exception l程序中的逻辑错误的异常类,它是Exception类的直接子类。lclass BadFunctionCallException extends LogicException l当不合法的函数被调用产生的异常类。lclass BadMethodCallException extends BadFu

11、nctionCallException l当不合法的方法被调用产生的异常类。lclass DomainException extends LogicException l表示一个值不在有效范围内的异常。lclass InvalidArgumentException extends LogicException l表示传递了无效的参数产生的异常。lclass LengthException extends LogicException l表示一个参数超过了许可的长度的异常。lclass OutOfRangeException extends LogicException l表示请求检索超越了数组

12、等容器最大长度的异常。RuntimeException衍生出衍生出其它运行异常子类其它运行异常子类lclass RuntimeException extends Exception l只有在执行时才能发现的异常,是Exception的直接子类。lclass OutOfBoundsException extends RuntimeException l表示请求检索超越了数组等容器最大长度的异常。lclass OverflowException extends RuntimeException l表示算法/缓存溢出异常 lclass RangeException extends RuntimeEx

13、ception l运行期间的范围异常 lclass UnderflowException extends RuntimeException l运行期间的算法/缓存的向下溢出异常。l在spl.php 中所有Exception子类的代码都仅仅是类的定义和简单的父类继承。l而方法内部没有任何扩展、重写。l如:LogicException的定义。l又如:LengthException的定义部分 PHP5异常捕获异常捕获 l异常实例 l可以通过实例化 Exception类或者它的子类来创建一个异常实例。l有了这个异常实例,就可以通过Exception中定义好的getter方法,获得相应的属性值。l?l$

14、exception=new Exception(Here some Exception);echo.;lecho$exception;echo.;lecho getCode()=.$exception-getCode()./;lecho getFile()=.$exception-getFile()./;lecho getLine()=.$exception-getLine()./;lecho getMessage()=.$exception-getMessage()./;lecho getTrace()=.$exception-getTrace()./;lecho getTraceAsStr

15、ing()=.$exception-getTraceAsString()./;l?l?l$exception=new RuntimeException(Here some RuntimeException);lecho.;lecho$exception;lecho.;lecho getCode()=.$exception-getCode()./;lecho getFile()=.$exception-getFile()./;lecho getLine()=.$exception-getLine()./;lecho getMessage()=.$exception-getMessage()./;

16、lecho getTrace()=.$exception-getTrace()./;lecho getTraceAsString()=.$exception-getTraceAsString()./;l?l抛出异常 l在PHP5中使用 throw 关键字,向外抛出一个异常实例。l如果这个异常如果未经处理,将会导致系统产生致命错误,而使代码终止。ll根据需求,我们可以向系统抛出不同的异常。l在php中数组越界是不会产生知名错误的,而下面的代码抛出一个数组越界的异常,导致代码运行终止。l count($arr)l$exception=new OutOfBoundsException(array$a

17、rr OutOfBounds Exception);l lthrow$exception;l?在代码中捕获异常在代码中捕获异常l可以通过PHP5支持的try catch 语句捕获并处理异常。l语法如下:ltry l/可能引发异常的语句 lcatch(异常类型 异常实例)l/异常处理语句 l l在 try块中,放置可能产生异常的代码片段。在catch块中放置对这个异常处理的代码。如:ltry lthrow new Exception(“new Exception”);/引发抛出异常 lcatch(Exception$ex)lecho$ex;/打印这个异常对象 l l如果try块未产生任何异常,t

18、ry块将运行完毕,catch块内容不会被执行。ltry块如果抛出了异常,会立刻在catch中寻找可以捕获改异常的catch块,并运行相应的catch块代码,然后跳出try catch块继续运行。而try块中抛出异常后面的代码将被跳过。l如果try块中的异常不能被catch块捕获,将抛向系统引发系统致命错误,代码终止运行。l在catch中,异常类型后面跟的是一个变量,这个变量将指向内存中被捕获的异常实例。l未使用异常处理时,我们从一个数组中取值,如果数组越界,PHP只会报出一个错误Notice,我们无法对这些错误做任何的处理。l在下面例子中,取值超过了数组边界,于是引发了自定义异常。在catch

19、块做了处理。l sizeof($arr)lthrow new OutOfBoundsException(数组$arr 取值越界异常.);l l$a=$arr$b;/如果没有异常就取出值 lcatch(OutOfBoundsException$ex)l if($debug)l echo 在第.$ex-getLine().行,产生异常,;lecho$ex-getMessage().;lecho 数组长度是.sizeof($arr).不能取到位置$b.;l l$a=0;/如果产生异常将0赋值给$a l l echo$a=$a;l?l大家注意到catch(Exception$ex)中 Exceptio

20、n 这个类名,下面解释它的具体意义。l在catch块中能捕获在catch()块中声明的捕获的异常和其子类类型实例。l下面的例子,抛出一个OutOfBoundsException的异常,而catch语句捕获DomainException 异常。这个异常不会被catch语句捕获,而直接抛向了系统,引发了一个致命错误,程序被终止了。l sizeof($arr)lthrow new OutOfBoundsException(数组$arr 取值越界异常.);l l$a=$arr$b;/如果没有异常就取出值 lcatch(DomainException$ex)l if($debug)l echo 在第.$

21、ex-getLine().行,产生异常,;lecho$ex-getMessage().;lecho 数组长度是.sizeof($arr).不能取到位置$b.;l l$a=0;/如果产生异常将0赋值给$a lecho$a=$a;l?l在catch块中能捕获catch()块里声明的异常的子类异常。l一个catch块处理多种异常 l 在catch块中能捕获在catch()块中声明的捕获的异常和其子类类型实例。l sizeof($arr)lthrow new OutOfBoundsException(数组$arr 取值越界异常.);l l$a=$arr$b;/如果没有异常就取出值 lif(true)l

22、throw new RuntimeException(这里产生一个Runtime异常);/如果9行无异常,这里抛出异常.l lcatch(RuntimeException$ex)lif($debug)lecho 在第.$ex-getLine().行,产生异常,;lecho$ex-getMessage().;l l$a=0;/如果产生异常将0赋值给$a l lecho$a=$a;l?l多个catch块处理异常 l一个try块可以跟随多个catch块,每个catch块捕获不同的异常。l下面例子的第7行,使用rand函数产生了一个0或1的随机数,反复运行这个代码会随机抛出逻辑异常或执行异常。l在tr

23、y块后,有两个catch块,分别捕获并处理对应的异常,注意查看不同。lgetLine().行,产生逻辑异常,;lecho$ex-getMessage().;l lcatch(RuntimeException$ex)lif($debug)lecho 在第.$ex-getLine().行,产生运行异常,;lecho$ex-getMessage().;l ll?异常处理块嵌套异常处理块嵌套l异常处理块只能处理自己catch块中的异常,已经处理过的异常将不会向外抛出。异常向外抛出异常向外抛出 l异常向外抛出 l代码中一旦throw一个异常实例,系统会寻找能够处理这个异常的try lcatch块,如果当

24、前方法不能够处理这个异常,就会向外抛出。抛向调用这个方法的代码,一直向外抛出,如果抛到最外层都无法处理这个异常,会引发致命错误,代码终止。l我们可以在方法引用的任何一个环节,根据业务需求决定捕获异常的位置。PHP5自定义异常自定义异常 异常处理实例异常处理实例 l本例将写用户名和密码长度验证并对用户名和密码设定为只能是字符,配合正则表达式完成。l设定用户名和密码长度必须在3-8个之间,并且只能是字符与数字 lUser.php 实现功能:l 定义User接口。l 实现存放用户信息的类。l 通过工厂模式返回用户类实例l定义一些参数的类,Properties.php l在这个类中集中定义了一些参数,

25、方便进行后期一些与程序逻辑关系不大的维护。l自定义类,MyException.php l自定义了用户名和密码两个独立的异常类,以及其它子类。l验证用户名和密码长度合法性的类 Validate.php l在validateName方法和validatePassword两个方法中,分别对长度做了判断和验证。l并通过正则表达式,对用户输入的合法性做了验证。l虽然可以通过正则表达式一次验证用户字符合法性和长度,本例没有这样写是为了向方法外抛出长度不同的异常,以及显示给用户的信息。l登录页面login.php。l登录会提交给 loginvalidate.php l这段代码相当于 MVC中的controller控制器。l登录成功页面,loginSuccess.php l显示用户登录信息,判断session。

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|