사용자 도구

사이트 도구


language:php:php와mysql-ch5-코드재활용과-함수

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.


이전 판
language:php:php와mysql-ch5-코드재활용과-함수 [2024/04/23 22:44] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 +~~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 에 위의 설정을 추가할 수 있다. 위의 방법보다는 나은듯
 +
 +<code htaccess>
 +php_value auto_prepend_file ...
 +php_value auto_append_file ...
 +</code>
 +
 +.htaccess를 매번 읽어 오기 때문에 성능에 다소 영향을 줄 수도 있다고 하네.
 +
 +===== 함수 =====
 +
 +함수 선언의 프로토타입. 
 +
 +  * 리턴값은 명시하지 않아도 된다.
 +  * 함수 파라미터에 타입을 명시 하지 않아도 된다.
 +
 +<code php>
 +function FunctionName( $param, ... )
 +</code>
 +
 +==== 함수의 정보 획득 ====
 +
 +  * func_num_args() : 파라미터 개수
 +  * func_get_arg() : 파라미터 얻기
 +  * func_get_args() : 파라미터들 얻기
 +
 +===== 변수의 범위 =====
 +
 +  - 함수 내부에서 선언된 것은 함수 내부에서만 참조 (완전한 로컬)
 +  - 함수 외부에서 선언된 것은, 함수 내부에서는 사용 불가능. 
 +  - 함수 내부에서 변수 선언시 global을 붙이면 전역
 +
 +==== 변수의 값 확인과 제거 ====
 +
 +  * isset( $var ) : 값이 있는가? NULL인가도 확인.
 +  * unset( $var ) : 변수 해제.
 +
 +===== 참조 =====
 +
 +함수 파라미터에 <nowiki>&</nowiki>를 붙이면 참조형 파라미터가 된다.
 +
 +===== 재귀함수 =====
 +
 +지원한다.