PHP return 문이란?
PHP에서 return 문의 핵심 역할은 프로그램 실행의 제어권을 해당 코드를 호출한 환경으로 되돌려주는 것입니다. return 문이 실행되면, 함수나 모듈을 호출한 지점 다음에 위치한 표현식부터 실행이 계속됩니다.
return 문이 함수 내부에서 사용되면 현재 함수의 실행이 즉시 종료되고, 제어권이 호출한 환경으로 넘어갑니다. 또한 return 문 앞에는 선택적으로 표현식을 둘 수 있으며, 이 경우 표현식의 값도 함께 반환됩니다.
return 문이 include로 포함된 스크립트 내부에서 사용되면, 현재 스크립트의 실행이 즉시 종료되고 제어권이 이를 포함한 원래 스크립트로 돌아갑니다. 만약 최상위(메인) 스크립트 자체에서 return 문을 만나면 실행이 즉시 종료되고 제어권이 운영체제(OS)로 넘어갑니다.
함수에서의 return 문
다음 예제는 함수 내부에서 return 문이 동작하는 방식을 보여줍니다. return 문이 없어도 함수는 마지막 줄까지 실행된 후 자동으로 종료됩니다.
예제
<?php
function SayHello(){
echo "Hello World!\n";
}
echo "before calling SayHello() function\n";
SayHello();
echo "after returning from SayHello() function";
?>실행 결과
before calling SayHello() function Hello World! after returning from SayHello() function
SayHello() 함수가 호출된 후 "Hello World!"를 출력하고 종료되며, 그 다음 문장인 echo가 정상적으로 실행되는 것을 확인할 수 있습니다.
값을 반환하는 return 문
return 문 앞에 표현식을 두면 그 결과값을 호출자에게 전달할 수 있습니다. 다음 예제는 인자로 받은 숫자의 제곱을 반환하는 함수입니다.
예제
<?php
function square($x){
return $x**2;
}
$num=(int)readline("enter a number: ");
echo "calling function with argument $num\n";
$result=square($num);
echo "function returns square of $num = $result";
?>실행 결과
calling function with argument 0 function returns square of 0 = 0
square() 함수는 $x**2 연산의 결과를 return 문으로 반환하며, 이 값이 변수 $result에 저장됩니다.
include된 스크립트에서의 return 문
return 문은 include로 포함된 파일 안에서도 사용할 수 있습니다. 포함된 스크립트에서 return 문을 만나면 나머지 코드는 건너뛰고 제어권이 메인 스크립트로 돌아갑니다.
예제
//main script <?php echo "inside main script\n"; echo "now calling test.php script\n"; include "test.php"; echo "returns from test.php"; ?> //test.php included <?php echo "inside included script\n"; return; echo "this is never executed"; ?>
실행 결과
메인 스크립트를 커맨드 라인에서 실행하면 다음과 같은 결과가 출력됩니다.
inside main script now calling test.php script inside included script returns from test.php
test.php의 return 문 이후에 있는 "this is never executed" 문장은 실행되지 않습니다.
include 시 값 반환받기
포함된 파일에서도 return 문 앞에 표현식을 둘 수 있습니다. 이 경우 include 문 자체가 반환값을 갖게 되어, 메인 스크립트에서 변수로 받아 활용할 수 있습니다.
예제
//main script <?php echo "inside main script\n"; echo "now calling test.php script\n"; $result=include "test.php"; echo $result; echo "returns from test.php"; ?> //test.php included <?php $var="from inside included script\n"; return $var; ?>
실행 결과
inside main script now calling test.php script from inside included script returns from test.php
test.php가 문자열을 return 하면, 메인 스크립트의 $result = include "test.php"; 구문을 통해 그 값을 받아 출력할 수 있습니다. 이 패턴은 설정 파일(config)에서 설정 배열을 반환할 때 실무에서 매우 유용하게 활용됩니다.