Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

finally와 return 사이의 PHP 상호 작용

<시간/>

소개

마침내의 독특한 동작이 있습니다. try 블록이나 catch 블록(또는 둘 다)에 return이 포함된 경우 차단 성명. 일반적으로 return 문은 프로그램 제어가 호출 위치로 돌아가도록 합니다. 단, try /catch 블록에 return이 있는 함수의 경우에는 finally 블록에 있는 문이 먼저 실행되어 반환됩니다.

예시

다음 예에서 div() 함수에는 try - catch - finally 구성이 있습니다. 예외가 없는 try 블록은 나눗셈의 결과를 반환합니다. 예외의 경우 catch 블록은 오류 메시지를 반환합니다. 그러나 두 경우 모두 finally 블록의 문이 먼저 실행됩니다.

예시

<?php
function div($x, $y){
   try {
      if ($y==0)
         throw new Exception("Division by 0");
      else
         $res=$x/$y;;
         return $res;
      }
      catch (Exception $e){
         return $e->getMessage();
      }
      finally{
         echo "This block is always executed\n";
   }
}
$x=10;
$y=0;
echo div($x,$y);
?>

출력

다음 출력이 표시됩니다.

This block is always executed
Division by 0

$y의 값을 5로 변경합니다. 다음 출력이 표시됩니다.

This block is always executed
2