shop-wiz logo
Follow Us on Facebook Follow Us on Google+ Follow Us on Twitter Follow Us on LinkedIn

함수 이야기

함수는 이미 우리가 변수를 배울때 한번 보았을 것입니다. 지역변수, 전역변수 하면서.. 기억이 나지 않으면 "변수 이야기"편을 다시 보시기 바랍니다.

또한 배열을 공부할때 배열, 함수, 클래스가 프로그램 속도를 많이 단축시켜준다고도 언급했습니다. 바로 재활용성 때문에 이렇게 복잡(?)하고 이해하기 힘든 함수를 배우는 것입니다. 클래스는 함수의 모음이므로 함수만 이해 한다면 클래스도 별문제 없을 것이라 여겨집니다. 실제로 함수를 하다보면 이것보다 재미나는 것은 없을 것이라 여겨집니다. 또한 웹프로그래머라면 javascript를 통해 어느정도는 함수와 친해져 있을 것이라 여겨집니다. 자바스크립트는 주로 함수와 클래스로 이루어져 있거던요..

본격적으로 들어가면서 함수란 자주 반복되는 내용을 하나의 독립된 프로그램으로 만들어 필요한 경우 함수명을 호출하여 사용합니다.
함수는 크게 내장함수, 사용자함수로 나누어진다. 내장함수는 이미 php 원 프로그램 개발자에의해서 이미 만들어진 함수로 http://www.php.net 을 참조하시면 좋을 것입니다. 또한 개발되어 있는 내장함수라고 할지라도 apm setting시 config에 잡아 두지 않으면 소용이 없습니다.

여기서 우리가 다룰 내용은 사용자함수 입니다. 사용자함수를 정의하고 이것을 다시 사용하는 것입니다. 이 예제에서는 단순하게 노가다로 보여질지라도 프로그램의 규모가 큰데에서는 정말 정말 시간을 아낄수 있습니다. 흔히들 프로그래머의 힘은 함수와 클래스라고도 하는 이유는 여기 있습니다.


function 함수명(가인수) { // 함수의 정의
문장1
문장2
}

함수명(실인수 ) // 함수의 사용(호출)


※ 실인수는 실제 값을 가지고 있는 인수이며, 가인수는 이러한 실인수값을 넘겨 받는다. 또한 이런 인수들은 "," 로 구분하여 다수를 넘길 수도 있습니다.

<?
#함수의 정의
function sum_fnc($a, $b) {
$total = $a + $b ;
echo("$a + $b 합은 $total 이다.<br>");
}

#함수의 사용
sum_fnc(90,80);
sum_fnc(120,300);
?>


결과보기


<?
#함수의 정의(리턴문사용시)
function sum_fnc($a, $b) {
$total = $a + $b;
return $total ;
}

$a=100;
$b=120;
$result = sum_fnc($a,$b);
echo("$a + $b 합은 $result 이다.");
?>


결과보기


<?
#함수의 정의(다수의 값으로 리턴할 경우 배열을 사용한다.)
function div_fnc($a, $b) {
$d = intval($a / $b); // 정수 변환
$m = $a % $b;
return array($d, $m); // 배열로 리턴
}

list($div, $mod) = div_fnc(20, 3);
echo ("나머지는 $mod ");
echo ("몫은 $div ");
?>


결과보기



[설명]
오늘도 그냥 넘어가려니 좀 허전하네요..오늘은 list()에 대해서 배우겠습니다.
함수중 내장함수라는 표현이 있었는데 이 list()가 내장함수에 들어갑니다. 만들지 않고도 이렇게 자유롭게 사용할 수 있으니깐요..
list()는 이미 list($key, $value) = each($Array)와 같이 이미 배열을 배울때 한번 사용했던 것입니다.
이 함수의 사용법에 대해서 많이 궁금하시죠? 지금까지 제가 php.net을 강조했는데 이곳에서 찾는 방법및 이곳에는 뭐라고 적혀있는지 함 보겠습니다.

http://www.php.net 에 접속후에 search for "list"를 치시고 뒤의 실렉트의 값이 function list라 되어있는지 확인후 뒤의" ▶"(안닮았다ㅠ.ㅠ) 버튼을 살며시 누르세요.

그럼 list에 관한 짧은 설명과 다양한 예제들이 나옮니다. 첫번째로 나오는예제를 볼까요?

<?php
$info = array('coffee', 'brown', 'caffeine');
// 모든 변수를 목록화한다
list($drink, $color, $power) = $info;
print "$drink is $color and $power makes it special.\n";
// 그들중 일부를 목록화한다
list($drink, , $power) = $info;
print "$drink has $power.\n";
// 또는 세번째 값으로만 건너띈다
list( , , $power) = $info;
print "I need $power!\n";
?>



이미 이전에 설명을 다드린것 같은데 하나하나 짚고 넘어가 보져..
1라인 : <?php
php코딩의 시작은 <? 혹은 <?php 라고 이미 설명드렸습니다. 여기서는 FM을 사용했네요. ㅎ

2라인 : 두번째라인에서는 array('coffee', 'brown', 'caffeine');를 정의 했네요.. 이것도 배열편에서 배웠구여..

3라인 : "//"이라는 주석표시를 했습니다. 주석표시에는 "#" 도 있고 /* ~~~~*/ 도 있다고 말씀드렸구여..

4라인 : 우리가 알고 싶은 list가 나오네요.. 지금까지 list()의 인수로 두개만 들어가는 줄 알았는데 여기는 3개네요.. 그럼 4개도 5개도 된다는 말씀....

5라인 : print 문이 보입니다. echo 문하고 같다는 기억을.. 그리고 printf 가 있었다는 어렴풋한 기억을 떠 올리세요..그런데 5라인에는 못보았던 것이 하나 더 있습니다. \n 이라는 건데.. 어디에 사용하는 물건일까요? newline을 뜻하는 문자입니다. 즉, 한줄 내려쓰라는 겁니다. 워드공부하실때 "엔터키"하고 동일하져.. \n\r 이 주로 사용되는데 n은 newline, r은 return을 뜻합니다. windows os와 linux os간의 다른 점이 이곳에 있습니다. 이런 특수문자에 대해서는 시간이 나는데로 다시금 강의해 드리도록 하겠습니다.

해석을 하고 나니 php.net 도 별거 아니네요.. 지금껏 배운것에서 모두 나오네요.. 이제 여러분들은 이 강좌를 벗어나 직접 함수를 보면서 공부하실 수 있습니다. php.net에는 다양한 예제가 나오니깐 더욱 여러분들의 실력을 업하실 수 있을 겁니다.


Powered by shop-wiz since 2002, e-mail:wangta69@naver.com