异常(接上篇)
一个简单异常处理实例
<span>php </span><span>try</span><span> { $error</span>= <span>'</span><span>Always throw this error</span><span>'</span><span>; </span><span>throw</span><span>new</span><span> Exception($error); </span><span>//</span><span>创建一个异常对象,通过throw语句抛出</span>echo <span>'</span><span>Neverexecuted</span><span>'</span><span>; </span><span>//</span><span>从这里开始,try代码块内的代码将不会再被执行</span>} <span>catch</span><span> (Exception $e) { echo </span><span>'</span><span>Caught exception:</span><span>'</span>, $e->getMessage(), <span>"</span><span>\n</span><span>"</span><span>; </span><span>//</span><span>输出捕获的异常消息</span><span>} echo </span><span>'</span><span>Hello World</span><span>'</span>; <span>//</span><span>程序没有崩溃继续向下执行</span>?>
系统自带异常处理
<span>php classException{ </span><span>protected</span>$message=<span>'</span><span>Unknownexception</span><span>'</span>;<span>//</span><span>异常信息</span><span>protected</span>$code=<span>0</span>;<span>//</span><span>用户自定义异常代码</span><span>protected</span>$file;<span>//</span><span>发生异常的文件名</span><span>protected</span>$line;<span>//</span><span>发生异常的代码行号</span>function__construct($message=<span>null</span>,$code=<span>0</span><span>); finalfunctiongetMessage();</span><span>//</span><span>返回异常信息</span>finalfunctiongetCode();<span>//</span><span>返回异常代码</span>finalfunctiongetFile();<span>//</span><span>返回发生异常的文件名</span>finalfunctiongetLine();<span>//</span><span>返回发生异常的代码行号</span>finalfunctiongetTrace();<span>//</span><span>backtrace()数组</span>finalfunctiongetTraceAsString(); <span>//</span><span>已格成化成字符串</span><span>的getTrace()信息 </span><span>/*</span><span>可重载的方法</span><span>*/</span><span>function__toString();</span><span>//</span><span>可输出的字符串</span><span>} </span>?>
<span>php </span><span>/*</span><span> 自定义的一个异常处理类,但必须是扩展内异常处理类的子类</span><span>*/</span><span>class</span><span> MyExceptionextends Exception{ </span><span>//</span><span>重定义构造器使第一个参数message 变为必须被指定的属性</span><span>public</span> function __construct($message, $code=<span>0</span><span>){ </span><span>//</span><span>可以在这里定义一些自己的代码 </span><span>//</span><span>建议同时调用parent::construct()来检查所有的变量是否已被赋值</span><span>parent::__construct($message, $code); } </span><span>public</span><span> function __toString() { </span><span>//</span><span>重写父类方法,自定义字符串输出的样式</span><span>return</span> __CLASS__.<span>"</span><span>:[</span><span>"</span>.$<span>this</span>->code.<span>"</span><span>]:</span><span>"</span>.$<span>this</span>->message.<span>"</span><span><br></span><span>"</span><span>; } </span><span>public</span><span> function customFunction() { </span><span>//</span><span>为这个异常自定义一个处理方法</span>echo <span>"</span><span>按自定义的方法处理出现的这个类型的异常<br></span><span>"</span><span>; } } </span>?>
自定义异常
<span>php </span><span>try</span> { <span>//</span><span>使用自定义的异常类捕获一个异常,并处理异常</span>$error = <span>'</span><span>允许抛出这个错误</span><span>'</span><span>; </span><span>throw</span><span>new</span><span> MyException($error); </span><span>//</span><span>创建一个自定义的异常类对象,通过throw语句抛出</span>echo <span>'</span><span>Never executed</span><span>'</span>; <span>//</span><span>从这里开始,try代码块内的代码将不会再被执行</span>} <span>catch</span> (MyException$e) { <span>//</span><span>捕获自定义的异常对象</span>echo <span>'</span><span>捕获异常: </span><span>'</span>.$e; <span>//</span><span>输出捕获的异常消息</span>$e->customFunction(); <span>//</span><span>通过自定义的异常对象中的方法处理异常</span><span>} echo </span><span>'</span><span>你好呀</span><span>'</span>; <span>//</span><span>程序没有崩溃继续向下执行</span>?><br>
捕获多个异常
在try代码之后,必须至少给出一个catch代码块,也可以将多个catch代码块与一个try代码块关联使用。那么使用多个catch就可以捕获不同的类所产生的异常。注意顺序。
2 时间戳
2.1 UNIX时间戳
Unix 时间戳:
??自从Unix 纪元(格林威治时间1970 年1 月1 日00:00:00)到当前时间的秒数.
??相关函数:
??使用time( )函数返回一个当前系统的时间戳
??mktime( )--取得一个日期的Unix 时间戳
??格式:intmktime(时[,分[,秒[,月[,日[,年[,is_dst区]]]]]]);
??注意:is_dst参数表示是否
2.2 在PHP中获取日期和时间
getdate--取得日期/时间信息
??格式:array getdate( [inttimestamp] )
??返回一个根据timestamp得出的包含有日期信息的结合数组。如果没有给出时间戳则认为是当前本地时间。数组中的单元如下:
2.3 日期和时间的格式化输出
date--格式化一个本地时间/日期
??格式:string date ( string format [, inttimestamp] )
??返回将整数timestamp按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。换句话说,timestamp是可选的,默认值为time()(当前时间戳)。
??例如:
echo date(“Y年m月d日H:i:s”);//2010年10月28日14:22:28
Y:四位数年m:月01-12 n:月1-12d:天01-31 j:天1-31
H:时24时制h:小时12制i:分钟00-59 s:秒00-59 w:星期几0-6
A:上午AM或下午PM a:上午am或下午pm。
2.4 修改PHP的默认时区
修改PHP的默认时区有两种方式:
??1、修php.ini配置文件:
??date.timez/GMT+8
??2、使用date_default_timezone_set函数:--设定用于一个脚本中所有日期时间函数的默认时区。
??如:date_default_timezone_set(“PRC”);//中国时区。
??date_default_timezone_get();//获取当前时区
2.5 使用微秒计算PHP脚本执行时间
microtime--返回当前Unix 时间戳和微秒数
??格式:mixed microtime( [boolget_as_float] )
??microtime() 当前Unix 时间戳以及微秒数。本函数仅在支持gettimeofday() 系统调用的操作系统下可用。
??如果调用时不带可选参数,本函数以"msecsec" 的格式返回一个字符串,其中sec 是自Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec是微秒部分。字符串的两部分都是以秒为单位返回的。
??如果给出了get_as_float参数并且其值等价于TRUE,microtime() 将返回一个浮点数。
以上就介绍了PHP常用功能块_异常与时间戳 — php(33),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3汉化版
中文版,非常好用

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。