Home > Article > Backend Development > PHP common function blocks_Exception and timestamp — php (33)
Exception (continued from the previous article)
A simple exception handling example
<?<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>?>
The system comes with exception handling
<?<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>?>
Customized exception
<?<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>
captured Multiple Exceptions
在try代码之后,必须至少给出一个catch代码块,也可以将多个catch代码块与一个try代码块关联使用。那么使用多个catch就可以捕获不同的类所产生的异常。注意顺序。
2 Timestamp
2.1 UNIX Timestamp
Unix Timestamp:
??Since the Unix Epoch (January 1, 1970 00:00:00 GMT ) to the number of seconds in the current time.
??Related functions:
??Use the time() function to return a timestamp of the current system
??mktime()--Get the Unix timestamp of a date
??Format: intmktime (hour[,minute[,second[,month[,day[,year[,is_dst area]]]]]];
??Note: is_dst parameter indicates whether
2.2 Get date and time in PHP
getdate--Get date/time information
??Format: array getdate([inttimestamp])
??Returns a combined array containing date information based on timestamp. If no timestamp is given, the current local time is assumed. The units in the array are as follows:
2.3 Formatted output of date and time
date--Format a local time/date
??Format: string date ( string format [, inttimestamp] )
? ?Returns a string generated by taking the integer timestamp according to the given format string. If no timestamp is given, the local current time is used. In other words, timestamp is optional and the default value is time() (the current timestamp).
??For example:
echo date("Y year m month d day H:i:s");//October 28, 2010 14:22:28
Y: four-digit year m: month 01-12 n: month 1-12d: day 01-31 j: day 1-31
H: hour 24-hour system h: hour 12-hour system i: minute 00-59 s: second 00-59 w: day of the week 0-6
A : AM or PM a: am or pm.
2.4 Modify PHP’s default time zone
There are two ways to modify PHP’s default time zone:
??1. Repair the php.ini configuration file:
??date.timez/GMT+8
??2. Use date_default_timezone_set function:--Set the default time zone for all date and time functions in a script.
??For example: date_default_timezone_set("PRC");//China time zone.
??date_default_timezone_get(); //Get the current time zone
2.5 Use microseconds to calculate PHP script execution time
microtime--Return the current Unix timestamp and microseconds
??Format: mixed microtime( [boolget_as_float] )
??microtime() Current Unix timestamp and microseconds. This function is only available under operating systems that support the gettimeofday() system call.
??If called without optional parameters, this function returns a string in the format of "msecsec", where sec is the number of seconds since the Unix epoch (0:00:00 January 1, 1970 GMT). msec is the microsecond part. Both parts of the string are returned in seconds.
??If the get_as_float parameter is given and its value is equivalent to TRUE, microtime() will return a floating point number.
The above introduces the common function blocks of PHP_Exception and timestamp - php (33), including the relevant content. I hope it will be helpful to friends who are interested in PHP tutorials.