웹마스터 팁

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

클래스의 개념을 말할때, 빠지지 않는 것이 자동차와 차바퀴의 비유입니다. 자동차는 네개의 바퀴가 달려 있습니다. 즉 바퀴라는 클래스가 있다고 할때, 그 바퀴클래스만 있으면, 네개의 바퀴를 쉽게 만들어 낼 수 있다는 것입니다.