웹마스터 팁

함수(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관련서적을 참고하시면 도움이 되실 것입니다..

클래스의 개념을 말할때, 빠지지 않는 것이 자동차와 차바퀴의 비유입니다. 자동차는 네개의 바퀴가 달려 있습니다. 즉 바퀴라는 클래스가 있다고 할때, 그 바퀴클래스만 있으면, 네개의 바퀴를 쉽게 만들어 낼 수 있다는 것입니다.
제목 글쓴이 날짜
[동주아빠] PHP 게시판 만들기 기초 (8) 초간단 카운터 만들기 [2] 손병목 2002.12.25
[동주아빠] PHP 게시판 - 글쓰기 입력폼(1) FORM 태그의 이해(上) [8] 손병목 2002.12.25
[동주아빠] PHP 게시판 - 글쓰기 입력폼(2) [1] 손병목 2002.12.25
[동주아빠] PHP 게시판 - 글쓰기 입력폼(3) 입력값검사 [5] 손병목 2002.12.25
웹폰트 그딴거 난 몰라! TTF가 폰트 파일인건 알아! ^.^ [3] 아이쿠 2002.12.25
[동주아빠] PHP 게시판 - 글쓰기 입력 write.php [5] file 손병목 2002.12.25
[동주아빠] PHP 게시판(14강) - 게시판용 테이블 만들기 [3] 손병목 2002.12.25
[동주아빠] PHP 게시판(15강) - 입력 글 DB 저장(1) [3] 손병목 2002.12.25
[동주아빠] PHP 게시판(15강) - 입력 글 DB 저장(1) [2] 손병목 2002.12.25
[동주아빠] PHP 게시판(16강) - 입력 글 DB 저장(2) [4] 손병목 2002.12.25
[동주아빠] PHP 게시판(17강) - 저장 후 페이지 이동 손병목 2002.12.25
[추천 강의] [설명] 304번 글에 대한 설명입니다. [5] [콜록]토끼군 2002.12.25
폼메일 --- 제로님 예전 폼메일 수정 변경.. [11] uropa™ 2002.12.27
[추천 강의] NZEO.COM 에서 쓰는 북마크 구현하기 [5] 東氣號太 2002.12.28
[동주아빠] PHP 게시판(18강) - 목록 보기(1) list.php 화면 디자인 손병목 2002.12.29
[동주아빠] PHP 게시판(19강) - 목록 보기(2) list.php 소스 [3] file 손병목 2002.12.29
[동주아빠] PHP 게시판(20강) - 목록 보기(3) list.php 설명(上) 손병목 2002.12.30
[동주아빠] PHP 게시판(21강) - 목록 보기(4) list.php 설명(中) 손병목 2002.12.30
[동주아빠] PHP 게시판(22강) - 목록 보기(5) list.php 설명(下) [1] 손병목 2002.12.30
SQL질의어를 DB에 입력하는 팁 [4] 최후의성전 2002.12.31