728x90


이 두 구조는 외부 파일을 대체하는 기능을 합니다.

require('somefile.html');
include('somefile.html');

위와 같은 형식으로 사용하는데 아래의 예를 보시면 쉽게 이해하실 수 있을것입니다.

head.html
 

main.php

결과 : main.php
 



include() 문 자리에 head.html의 소스가 고스란히 들어간 결과와 같게 됩니다. 그럼 이번엔 PHP 파일을 인클루드 해보겠습니다.

main.php

1
2
3
4
5
<?
echo "다우니와 함께하는 PHP 따라잡기<BR>";
include 
"inc.php";
echo 
"지금 쓰는 이름과 예전에 쓰던 홈피 이름";
?>


inc.php

1
2
3
<?
echo "나도 이제 PHPer - 피에치피어<BR>";
?>


결과 : main.php
 

여기서 주의해야 할 점이 있습니다. include()문이 파일로 대체된다고 해서 inc.php 파일에 <? ?> 를 빼버린다면..



위의 결과처럼 인클루드된 파일은 PHP 소스가 아니라 그저 HTML인것으로 이해하게 됩니다. 이러한 결과를 내는 이유는 include()와 require()가 실행될 때 기본적으로 HTML 모드로 읽어 들이기 때문입니다. 따라서 인클루드될 파일에 <? ?> 같은 PHP 시작,끝 태그가 없으면 실제로 PHP 소스일지라도 그저 HTML 파일로만 인식하게 됩니다.

 위의 예제들은 모두 require() 문으로 대체해도 똑같은 결과를 얻을 수 있습니다. "그럼 왜 불필요하게 같은 기능을 하는게 두개가 있을까?" 하는 의문을 가지실 겁니다. 답부터 말씀드리면 둘은 똑같지는 않기때문입니다. 기능이 비슷하긴 하지만 엄연히 다른부분이 있습니다.


PHP4 부터는 require 와 include 가 두가지 점을 제외하고 동일한 기능을 합니다. 첫 번째, require 는 수행실패시 Fatal Error를 내고 프로그램이 그 자리에서 종료됩니다. 뒤에 다른 PHP 코드가 있더라도 말이죠. 그러나 include 는 수행실패시 Warning 만 출력하고 나머지 코드를 모두 수행합니다. 두 번째, 같은 파일을 여러번 require 하더라도 딱 한번만 수행합니다. 그러나 include 는 같은 파일을 여러번 include 해도 상관없습니다.


return 은 함수에서 사용하는 제어 구조입니다. 함수 내부에서 함수의 수행을 중단하고 함수 호출 결과를 return 의 인자로 넘겨줍니다.

<?

function add ($a,$b) {
   
    $sum = $a + $b;
    return $sum;
    echo "나는 절대 출력안됩니다.";
}

$result = add(10,20);
echo $result;
?>

위처럼 함수를 호출한 결과를 return을 통해 전달하고 전달된 인자는 $result 변수에 저장이 됩니다. 결과는 30입니다. 그러나 함수내의 echo 문은 절대로 수행이 되지 않는데요. 그 이유는 return 때문에 함수 수행이 종료되기 때문입니다.

728x90
복사했습니다!