웹마스터 팁

함수(FUNCTION) 와 클래스(CLASS)

함수(FUNCTION) 의 호출 및 리턴값

여러분들께서 지금까지 어떠한 한가지 언어라도 배워보신 적이 있다면(HTML제외), 여러분은 분명 변수라는 것과 함수라는 것을 질리게 들어왔을 것입니다. PHP의 함수는 보통, 자바스크립트에서의 function 과 비슷합니다.

다음은 PHP에서의 함수의 형식입니다.

function 함수이름(인자) {
// 실행문
return 리턴값;
}

위의 기본함수코드에서, 인자와 리턴은 생략될 수 있으며, 지정된 함수의 호출은 함수이름(인자); 와 같은 형식을 사용합니다.

다음은 PHP에서 함수를 호출하는 형식입니다.

함수이름(인자);

위에서, 만약 호출하는 함수내에서, 리턴값과 인자가 없다면, 위에서의 인자또한 생략됩니다. 아래의 예제코드를 보시면 이해가 빠를 것입니다.


funtion hancoma($a) {
echo "$a";
}

hancoma("한꼬마");

}

[실행결과] 한꼬마

[부연설명] 위의 예제는 hancoma라는 함수가 있고 그 함수는 $a라는 변수를 받아서, 출력하고 있습니다.. hancoma(); 와 같이 호출한다면, 아무값도 전달되지 않으므로, 출력값이 없으나, "한꼬마"라는 값을 보내므로, $a라는 변수가 "한꼬마"를 받고, 그 값을 출력하게 됩니다.

다음은 함수의 단일 리턴값을 전달받아 출력하는 예제입니다.


function hancoma($a) {
$b = $a + 1;
return $b;
}

$c = 2;
$new = hancoma($c);

echo "$new";

?>

[실행결과] 3

[부연설명]
hancoma라는 함수는 변수a를 받아서, 그 값에 1을 더한 값을 변수 b에 대입한 다음 다시 변수b의 값을 리턴합니다.. 이 리턴값은 hancoma함수를 호출하는 변수에 돌려지게 되므로, $new라는 변수에 리턴된 $b값이 대입되어지게 됩니다.. 그러므로, 3이라는 결과값이 주어지게 됩니다.

* 함수내에서의 지역변수 및 전역변수사용에 대한 것은 변수의 사용범위파트를 참고하세요

클래스(CLASS)

PHP에서 또 하나의 변수 타입인 객체는 클래스(Class)를 통해서 생성되며 New 연산자를 통해 초기화 됩니다. 이것은 Java 나 C++ 같은 객체지향 언어에서 흔히 사용되는 방식입니다.


class hancoma {
function hancomaworld() {
echo "hancomaworld 함수입니다.";
}
}

$var = new hancoma;
$var->hancomaworld();

?>

위에서, $var 는 hancoma 클래스 객체를 생성하여 할당함으로서 $var라는 변수는 hancoma클래스의 클래스함수인 hancomaworld() 함수에 접근하여 호출할 수 있게 됩니다. 클래스에 포함된 함수에 접근하기 위해서 " -> " 연산자가 사용되며, 위의 결과값은 "hancomaworld 함수입니다." 가 출력되게 됩니다.
PHP를 이용한 프로그램에서, 클래스는 하나의 모듈처럼 사용되어 지는데, 이러한 클래스에 대한 경험이 없어 개념이 잘 파악되지 않을 경우 C++입문서나, JAVA관련서적을 참고하시면 도움이 되실 것입니다..

클래스의 개념을 말할때, 빠지지 않는 것이 자동차와 차바퀴의 비유입니다. 자동차는 네개의 바퀴가 달려 있습니다. 즉 바퀴라는 클래스가 있다고 할때, 그 바퀴클래스만 있으면, 네개의 바퀴를 쉽게 만들어 낼 수 있다는 것입니다.
제목 글쓴이 날짜
6. 시간관련 함수 한꼬마 2002.10.04
7. 함수(FUNCTION) 와 클래스(CLASS) 한꼬마 2002.10.04
8. PHP 의 제어구조 [1] 한꼬마 2002.10.04
9. 표현식(Expressions) - 연산자 한꼬마 2002.10.04
10. 문자열(STRING) 처리 및 관련함수 [1] 한꼬마 2002.10.04
11. PHP에서의 변수형 [1] 한꼬마 2002.10.04
exp. 완전 랜덤배너 소스 [8] file TheMics 2002.10.12
페이지에 접속할 때마다 다른 배너보여주는 소스.. [9] 풍월주인 2002.10.07
[PHP소스] 서버 시간에 따라 배경이 바뀌는 테이블!! [8] file 조현 2002.10.11
www 떼고 접속하면 다시 www붙은 주소로 리다이렉션 걸기 [8] [EC]POLARGOM 2002.10.18
Java Applet을 활용한 업로드시 전송률 확인하기.. file 아이쿠 2002.10.19
이메일 주소 인코딩하기 [7] 투유 2002.10.20
[추천 소스] nzeo에 있는 북마크 기능 구현하기(hot key 는 제외) 초허접 강좌 [10] 정승재 2002.10.22
[추천 소스] 특정일로부터 지난날짜 혹은 남은날짜 구하기~ [5] 박은석 2002.10.22
사용자정의 함수 뽑아오는 함수입니다... [4] 우트라 2002.10.23
현재 접속자 구하기...(파일2개) inging-zb41 2002.10.26
[출처있음]NZEO 채널 흉내내기 [10] (' _ ') napclub 2002.10.28
제로보드로 유료 사이트 만들기 (서론) [6] 한꼬마 2002.10.28
제로보드로 유료 사이트 만들기 (결제 테이블) [2] 한꼬마 2002.10.30
제로 카운터(zero counter)에서 총 접속자 숫자 조정하기 (Easy 버젼) [13] 미카엘 2002.10.31