또 include_once와 require_once도 있는데, 이것들은
한번 인클루드/리콰이어 됬으면 다시 인클루드/리콰이어 하지 않는다는 뜻입니다.
변수명이 덮어씌어져서 다 날라간다든지 하는 것을 막을 수 있겠네요...
그리고 뽀나쓰~~
이거는 너무 짧아서 한개의 글로 묶기 뭐해서 올리네요 -_-;
인터넷 사이트 돌아다니다가 알아다닌 건데요
함수명 앞에 @(앳)을 붙이면 에러를 안출력한다네요...
@include라던지 @require처럼...
에러는 출력되지만 정상적으로 나오기는 할 때 쓰면 유용하겠네요...
다른 글.....
require도 반목문 안에서 잘 돌아가는걸로 알고있습니다.
루프 안에서 에러를 내던건 버전 3 이야기구요..PHP 4 부터는 인클루드와 동일하게 작동합니다.
두가지는 오류가 어떤 모양으로 나오냐에 차이가 있습니다.
구체적으로 말하자면 경로 등 구문에 문제가 있을 경우
require는 warning오류를 내므로 오류 이하를 실행하지 않지만.
include는 문법오류를 내기 때문에 계속 프로그램을 실행시키게 됩니다.
require에서 리턴값을 받을 수 없다..따위의 자잘한 차이점은 있습니다만
본문처럼 일반적인 방법으로 사용할 때에는 위 오류 발생 부분에만 차이가 있다고 보면 될 듯 합니다.
아래는 php.net에서 발췌한 내용입니다.
"두가지 구조는 수행실패를 제어하는 방법을 제외하고 모든면에서 동일하다. include()는 Warning을 발생시키는 반면에 require()는 Fatal Error을 발생시킨다. 즉, 파일이 존재하지 않을때 페이지 처리를 중단시키 고자 한다면 require()를 쓰는데 주저할 필요가 없다. include()는 이와같이 동작하지 않으므로 파일이 없더라도 스크립트는 계속 실행될것이다. 또한 적절한 include_path설정인지 확인해야 한다. require한 파일 안에서의 처리 오류는 수행을 멈추지 않는 점에 주의하십시오."
"참고: PHP 4.0.2 이전 버전에서는 다음 규칙이 적용된다: require()는 어떤줄도 수행되지 않는 목적 파일도 무작정 읽어 들이려 한다. 조건절에서는 require()가 효과적이지 않다. 하지만, require() 되는 어떤 줄도 수행되지 않으면 목적 파일의 어떤 코드도 수행되지 않을것이다. 이와 유사하게, 루프 구조에서도 require()는 효과적이지 않다. 목적파일내에 포함된 코드가 계속 루프를 반복한다면, require()는 오직 한번만 발생한다."
require 문과 include 문은 둘 다 다른 파일을 불러와서 문서 내에 삽입하는 기능을 하는데,
require는 파일을 반복문 안에서 사용할 수 없고,
include는 반복문 안에서도 사용할 수 있다는 것이 다릅니다.
다음과 같이 만들어 실행해 보세요.(08-1.php)
1 : <?
2 : require("define.php");
3 : echo "$a $b";
4 : ?>
달리 설명을 드리지 않아도 되겠죠?
다시 말씀드리지만 require 문은 반복문 내에서 사용할 수 없습니다. 반면 아래의 include 문은 반복문 안에서도 사용할 수 있습니다.
3. 그러면 include 문을 반복문 안에서 사용한 예를 봅시다.(08-2.php)
1: <?
2: $files = array('include1.php','include2.php','include3.php');
3:
4: for ($count=0; $count<3 ; $count++) {
5: include($files[$count]);
6: echo "$a <br>";
7: }
8: ?>
2행의 배열에 대한 설명은 4회차 강좌에 있습니다.
4행의 for문은 지난 시간에 다루었습니다. 혹시 기억 안나시면 참조하시구요.</ol>