<?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();