>  기사  >  백엔드 개발  >  PHP 공통 함수 block_Exception 및 타임스탬프 — php (33)

PHP 공통 함수 block_Exception 및 타임스탬프 — php (33)

WBOY
WBOY원래의
2016-08-08 09:23:441055검색

예외(이전 글에서 이어짐)

간단한 예외 처리 예시

<?<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 epoch(1970년 1월 1일 00:00:00 GMT)부터 현재 시간까지의 초 수입니다.
??관련 함수:
??time() 함수를 사용하여 현재 시스템의 타임스탬프를 반환합니다
??mktime()--날짜의 Unix 타임스탬프 가져오기
??형식: intmktime(time [, 분[,초[,월[,일[,연도[,is_dst 지역]]]]]);
??참고: is_dst 매개변수는 PHP에서

2.2가 날짜를 가져오고 time in

getdate--날짜/시간 정보 가져오기
??형식: array getdate([inttimestamp])
??날짜 정보의 연관 배열을 포함하는 타임스탬프를 기반으로 값을 반환합니다. . 타임스탬프가 제공되지 않으면 현재 현지 시간으로 간주됩니다. 배열의 단위는 다음과 같습니다.

2.3 날짜 및 시간의 형식화된 출력

date--현지 시간 형식화 / Date
??형식: 문자열 날짜(문자열 형식 [, inttimestamp])
??주어진 형식 문자열에 따라 정수 타임스탬프를 변환하여 생성된 문자열을 반환합니다. 타임스탬프가 제공되지 않으면 현지 현재 시간이 사용됩니다. 즉, 타임스탬프는 선택 사항이며 기본값은 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 기본 시간대를 수정하는 방법에는 두 가지가 있습니다.
?? ini 구성 파일:
??date.timez/GMT+8
??2. date_default_timezone_set 함수를 사용합니다. --스크립트의 모든 날짜 및 시간 함수에 대한 기본 시간대를 설정합니다.
??예: date_default_timezone_set("PRC");//중국 시간대.
??date_default_timezone_get(); // 현재 시간대 가져오기

2.5 마이크로초를 사용하여 PHP 스크립트 실행 시간 계산

microtime--현재 Unix를 반환합니다. 타임스탬프 및 마이크로초
??형식: 혼합 microtime([boolget_as_float])
??microtime() 현재 Unix 타임스탬프 및 마이크로초. 이 함수는 gettimeofday() 시스템 호출을 지원하는 운영 체제에서만 사용할 수 있습니다.
??선택적 매개 변수 없이 호출되면 이 함수는 "msecsec" 형식의 문자열을 반환합니다. 여기서 sec는 Unix epoch(1970년 1월 1일 0:00:00 GMT) 이후의 초 수입니다. 숫자, msec는 마이크로초 부분. 문자열의 두 부분 모두 초 단위로 반환됩니다.
?? get_as_float 매개변수가 주어지고 해당 값이 TRUE와 동일하면 microtime()은 부동 소수점 숫자를 반환합니다.

위 내용은 PHP_Exception과 timestamp - php(33)의 공통 함수 블록을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.