본문 바로가기

PHP/PHP Programming

[PHP] 함수의 기본 문법

반응형

함수의 기본 문법



 함수는 모든 유효한 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