__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()的主要内容,如果未能解决你的问题,请参考以下文章

JS中try....catch

sql tsql__try_catch.sql

VC++异常捕获__try...__except和try...catch的使用介绍(附源码)

黑马程序猿_try-catch-finally

测试 __try, __finally, __except(被__finally捕获的异常, 还会被上一级的__except捕获。反之不行)

我们可以通过使用@try,catch 机制来防止崩溃吗?如果错误是 -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty arra