함수의 기본 문법
함수는 모든 유효한 php, 코드, 즉 조건문 클래스 내, 전역변수, 외부변수, 중첩, 상수 등 외부의 모든 작업을 함수 내에서 사용할 수 있도록 만들어진 코드 블록의 하나 입니다. 함수 이름은 다음과 같은 규칙을 따릅니다.
● a - z, A - Z, 0 - 9, 언더라인(_)으로 시작하는 127부터 255까지 길이인 함수.(대소문자 구분 없음)
● 정규표현식 : [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f=\xff]*.
PHP의 모든 함수와 클래스는 전역입니다. 함수가 내부에서 정의되었더라도 외부에서 호출할 수 있고, 반대도 성립합니다.
함수는 오버로딩(OVERLOADING)을 지원하지 않으며, 함수 정의를 해제하거나 이미 선언된 함수를 다시 서언할 수 없습니다.
함수는 내장함수, 외장함수, 익명함수로 분류할 수 있고, 내장함수는 php 설치시 기본적으로 제공되는 수 많은 함수를 지원하며, 사용자가 만들어 새로운 함수를 선언할 수도 있습니다.
● 내장함수 : php에서 기본적으로 제공하는 함수
● 외장함수 : 사용자가 만들어 사용하는 함수
● 익명함수 : 이름을 지정하지 않은 함수
사용자 함수는 function 이라는 예약어로 정의하며, 하나 이상의 인수(arguments)가 올 수 있습니다.
■ 함수 선언(prototype) 읽는 법
우선 함수 선언(prototype)을 읽는 방법을 알아야 합니다.
bool in_array(mixed $needle, array $haystack [, bool $strict]) |
"bool"은 true이거나 false로 반환합니다. "mixed"는 스칼라 값(문자열, 정수, 실수)이나 배열(Array)이 될 수 있고, 세 번째 선택적인 인수 이름을 strict 이라 하는데, 모든 선택적인 인수는 [브라켓] 사이에 들어갑니다. 메뉴얼 strict 인수의 기본값은 bool FALSE로 나와 있습니다.
int |
strlen |
(string $str) |
ㄴ 반환값 |
ㄴ 함수이름 |
ㄴ (인수형, $인수이름) |
위 함수 선언을 일반적인 방법으로 다시 작성할 수 있습니다.
부분 |
의미 |
strlen |
· 함수 이름 |
int |
· 반환 값은 integer형이빈다.(즉, 문자열의 길이가 숫자로 측정됩니다.) |
string |
· 이 함수의 인수는 str 이라는 이름을 가지는 string형입니다. |
필요적 조건으로 타입에 대한 기본적 이해는 중요합니다. 타입은 다음 표와 같습니다.
자료형 |
의미 |
|
스칼라형 |
booleans |
· bool로 정의. TRUE나 FALSE 중 한 값을 갖습니다. |
integer |
· 정수형, int로 정의, 소수점이 붙지 않는 수 |
|
float(또는 double) |
· 실수형, double로 정의. 소수점이 붙는 수 |
|
string |
· 문자열형 |
|
복합형 |
array |
· 배열형. 복수의 값을 가집니다. |
object |
·객체형 | |
특별형 |
resource |
· 자원 |
null |
· 비어 있는 값, 값을 갖지 않습니다. |
|
모의형 |
mixed |
· 문자열, 정수, 실수, 배열 |
number | · 정수, 실수 | |
callback | · 함수나 클래스의 호출 | |
void | · 인수 비워둠 |
■ 사용자 선언 함수
함수 이름은 변수 이름의 규칙에 따라 자유롭게 문자나 언더라인(_)으로 시작하여 문자, 숫자가 올 수 있지만 특수문자는 사용할 수 없습니다. 다음은 하나의 인수를 사용하여 정의하였습니다.
ex01.php
하나 이상의 인수를 t사용할 경우 쉼표로(,) 구분해서 사용하면 되는데, 다음과 같이 작성해 줍니다.
ex02.php
여기서 $a, $b, $c는 인수라 하고, $arg1, $arg2, $arg3은 파라미터(parameter)라 부릅니다. $arg3 = 'bool'은 인수에 전달된 변수가 없으면, "bool"을 디폴트로 사용하겠다는 것입니다. 만약, 디폴트 값이 있으면 인수를 비워도 괜찮지만, 없으면 인수를 비워 두어서는 안됩니다.
ex03.php
인수나 파라미터에 배열이 올 수도 있고, 반환값이 배열이 될 수도 있습니다.
ex04.php
■ return 반환문
반환문은 for문이나, while문과 같은 루프형이나 함수, 클래스 내에 호출된다면, 함수나 루프의 수행을 즉시 끝내고, return에 결과 값을 넘겨줄 수 있습니다. 이는 break문과 흡사합니다.
ex05.php
반환문은 함수가 아니라 언어구조이기 때문에 괄호로 묶을 필요는 없습니다. 이는 일반적인 것으로 PHP가 더 적은 일을 하게 합니다만 괄호를 사용해도 큰 문제는 없습니다.
ex06.php
다음은 반환 값을 갖지 않지만, global로 대신할 수도 있습니다.
ex07.php
■ 재귀 호출
재귀 호출은 함수 자기 자신을 호출하는 것을 말합니다.
ex08.php
■ 익명 함수
익명함수는 이름을 지정하지 않은 함수를 생성합니다. 이 기능은 (PHP 5.3)부터 사용 가능합니다.
ex09.php
아래 예제 코드와 같이 함수가 조건적으로 선언되면 그 함수가 호출되기 전에 함수를 선언해야 합니다.
ex10.php
'PHP > PHP Programming' 카테고리의 다른 글
[PHP] 정적변수 (0) | 2015.03.29 |
---|---|
[PHP] CGI 환경변수 (0) | 2015.03.29 |
[PHP] 세션 (0) | 2014.12.26 |
[PHP] 쿠키 (0) | 2014.12.26 |
[PHP] 성적 관리 프로그램 제작 (3) | 2014.12.23 |