__invoke,try{}catch(){},microtime(),is_callable()
Posted zxqblogrecord
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了__invoke,try{}catch(){},microtime(),is_callable()相关的知识,希望对你有一定的参考价值。
<?php /*1.对象本身不能直接当函数用,如果被当做函数用,会直接回调__invoke方法 * 2.验证变量的内容能否作为函数调用 * 3.try{}catch(Exception $e){}catch(){}finally{} * 4.microtime()函数返回当前时间戳和微妙数 * */ class httpException extends Exception{ } class Testcallable{ public function test(){ echo ‘我在测试‘; echo ‘</br>‘; } public function __call($name,$arg) { if($name ==‘othertest‘) { call_user_func_array([$this,‘test‘],$arg); } } public function __invoke() //对象本身不能直接当函数用,如果被当做函数用,会直接回调__invoke方法 { echo ‘兄弟我是对象‘; echo ‘</br>‘; throw new Exception(‘掉错了‘); } } $test = new Testcallable; echo $test->test(); echo $test->othertest();//对象调用不存在的方法时,__call魔术方法会被调用 echo ‘-----------<br>‘; echo is_callable([$test,‘test‘]);//验证变量的内容能否作为函数调用 echo is_callable([$test,‘othertest‘],false,$call); try{ echo 44; /*$test();*/ }catch(httpException $e){ echo ‘htpp‘.$e->getMessage(); }catch(Exception $e){ echo $e->getMessage(); }finally{ //程序又没有错误都会执行 echo ‘失败了‘; echo ‘-----------<br>‘; } echo $shijian = microtime();
以上是关于__invoke,try{}catch(){},microtime(),is_callable()的主要内容,如果未能解决你的问题,请参考以下文章
VC++异常捕获__try...__except和try...catch的使用介绍(附源码)
测试 __try, __finally, __except(被__finally捕获的异常, 还会被上一级的__except捕获。反之不行)
我们可以通过使用@try,catch 机制来防止崩溃吗?如果错误是 -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty arra