~~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 ) : 변수 해제.
===== 참조 =====
함수 파라미터에 &를 붙이면 참조형 파라미터가 된다.
===== 재귀함수 =====
지원한다.