~~Title:PHP 함수와 외부 파일 참조~~ {{page>language:php:php_문서_목차&noheader&nofooter&noeditbtn&firstseconly}} 함수와 외부 파일 참조 ====== 코드 재활용 ====== ===== requre, include ===== = include() : 외부의 문서를 PHP 가 실행되는 순서에 따라, 흐름 안에 임베디드(삽입) 한다. = : 이 함수가 실행되는 시점에 해당 문서가 흐름안에 삽입되어 그대로 파싱되는 것. **에러 발생시 경고만 발생시키고 넘어간다.** = include_once() : 한번만 수행하고, 동일한 문서를 다시 include 시도하면 무시한다. = require() : include()와 동일하지만, **에러 발생시 스크립트가 중단된다.** = require_once() : 한번만 수행. 나머지는 require()와 같다. 에러 발생시, 중단 여부 설정에 따라 선택. ===== 웹사이트 헤더, 풋터를 웹서버에 설정 ===== php 설정 중, * auto_prepend_file : 헤더 * auto_append_file : 푸터 위의 설정에 파일명을 적어주면 전역 헤더, 푸터로 인식한다. 하지만 전역 강제 설정이라 좋은 선택은 아닌듯. 아파치 웹서버를 사용한다면, 각 디렉토리의 .htaccess 에 위의 설정을 추가할 수 있다. 위의 방법보다는 나은듯 php_value auto_prepend_file ... php_value auto_append_file ... .htaccess를 매번 읽어 오기 때문에 성능에 다소 영향을 줄 수도 있다고 하네. ===== 함수 ===== 함수 선언의 프로토타입. * 리턴값은 명시하지 않아도 된다. * 함수 파라미터에 타입을 명시 하지 않아도 된다. function FunctionName( $param, ... ) ==== 함수의 정보 획득 ==== * func_num_args() : 파라미터 개수 * func_get_arg() : 파라미터 얻기 * func_get_args() : 파라미터들 얻기 ===== 변수의 범위 ===== - 함수 내부에서 선언된 것은 함수 내부에서만 참조 (완전한 로컬) - 함수 외부에서 선언된 것은, 함수 내부에서는 사용 불가능. - 함수 내부에서 변수 선언시 global을 붙이면 전역 ==== 변수의 값 확인과 제거 ==== * isset( $var ) : 값이 있는가? NULL인가도 확인. * unset( $var ) : 변수 해제. ===== 참조 ===== 함수 파라미터에 &를 붙이면 참조형 파라미터가 된다. ===== 재귀함수 ===== 지원한다.