안녕하세요?
거의 사용하지 않는(?) file return 에 관한 내용입니다.
거의 기초적인 문법 내용이라서 팁이될지는 모르겠네요..T.T
...
[PHP] 파일 리턴 (a script file return)
보통
return 구문은(함수가 아님) function(이하 '함수')의 '실행 끝' 을 의미합니다.
일반적으로 이렇게 많이 사용하고 있지요.
그러나 반드시 함수의 실행 종료만은 아닙니다.
위의 매뉴얼을 보시면 알겠지만 'eval() 이나 현재 실행파일의 종료' 에도
사용됩니다.
return :
1) 함수의 종료
2) eval() 의 종료
3) a file return (특정 파일의 실행 종료)
이와 같습니다.
두번째 eval() 은 제외하고 세번째에 관한 내용입니다.
아무래도 예를 들어서 설명하는것이 더 낫겠지요?
--- foo.php ------------------------------
<?php
require_once 'foo1.php';
require_once 'foo2.php';
require_once 'foo3.php';
...
?>
------------------------------------------
--- foo1.php ------------------------------
<?php
...
?>
------------------------------------------
--- foo2.php ------------------------------
<?php
...
if($bar)
{
...
...
} // end of this file
?>
------------------------------------------
--- foo3.php ------------------------------
<?php
...
?>
------------------------------------------
이와 같이 프로그램이 실행한다면(foo2.php 에 주의),
foo2.php 는 다음과 같이 file return 을 사용할 수 있습니다.
--- foo2.php ------------------------------
<?php
...
if(!$bar) return;
...
...
// end of this file
?>
------------------------------------------
즉 file return 은 return 이 들어간 그 이하는 실행하지 않습니다.
이점에 주의해야 합니다.
file return 이 사용되는 경우 :
1) 파일 하나가 통째로 if() 문을 사용할 경우(파일끝 부분까지)
2) 하나의 파일에서 비교적 긴 if() 문이 사용될때(파일끝 부분까지)
3) exit 없이 현재 파일의 어느 시점에서 건너뛰고 싶을 때
4) 기타 if() 외에 for(), while()... 등등에서 사용 가능
1)번 같이 파일하나가 통째로 if() 문이 들어가는 경우는 드물지만
이것은 상위의 부모파일(?)에서 if() 문으로 검사하여 파일 open 을
건너뛰는 것이 성능상에 좋습니다.
(require, include 도 file open 이므로 성능과 관련됨)
예)
if($some) require_once 'some.php';
-- some.php ------------------------
<?php
if(!$some) return; // 다시한번 더 체크도 가능
...
?>
-------------------------------------
이해가 되었는지 모르겠네요.
이상입니다. |