강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

PHP입문 - 함수
작성자 : 13 김영철
등록날짜 : 2009.01.13 22:52
1,215
여기에서는 "함수(Function)" 에 대해서 알아보겠습니다..
 
함수는 중/고등학교시절 수학시간에 많이 접하던 단어입니다.
 
(사실 필자는 수학을 가장 싫어하며 그 시절 `함수`가 무엇인지 이해하지 못했습니다.)
 
    186994_0.gif
    186994_1.gif
    186994_2.gif
    186994_3.gif
    186994_4.gif
 
 
위의 함수들은 수학함수입니다..
186994_0.gif
 
위의 수학함수를 PHP 로 바꿔보면 다음과 같습니다.
 
---------------------------------------------------------
function getResultY($x)
{
        // a,b는 상수
        return ( a * $x )  + b;
}

$y = getResultY($x);
----------------------------------------------------------
 
함수()란...
 
x와 y 사이에 x의 값이 정해지면 따라서 y값이 정해진다는 관계가 있을 때, y는 x의 함수라고 합니다.
- 네이버 백과사전에 이렇게 나와 있군요.. 중학교때 수학을 못 한 이유가 분명 말이 어렵기 때문이었으리.. -
 
함수란...
 
만약, 필자가 함수에 대해서 설명을 하게 되었다면, 함수의 정확한 뜻은 잠시 제쳐두고 다음과 같이 말했을 것입니다..
 
"사과를 함수한테 줬더니만 껍질을 깎아서 먹기좋게 잘라서 넘겨주더라.."
 
하나의 예를 들겠습니다..
 
 
오늘 내가 할일 : 밥 짓기
----------------------
PHP를 몰라도 좋습니다.. 함수를 몰라도 좋습니다. 밥을 지을려면 무엇이 필요할까요?
쌀, 물 , 밥통, 전기 ...
 
그럼, 이제 밥을 지어 보겠습니다..
-------------------------------
나는 밥을 하기 하기 위해 
쌀을 물에 씻고
밥통에 넣은 후
밥통 전원을 넣었다.
 
밥을 하는데 들어간 재료에는 어떤 것들이 있나요?
---------------------------------------------
쌀,물,밥통,전기
 
이 것을 밥짓기 라는 함수로 만들어 보겠습니다.
--------------------------------------------
 
함수 밥짓기(재료)
{
      필요한 것1 = 물
      필요한 것2 = 밥통

      쌀밥 = 재료를 필요한 것1 에 씻고 필요한 것2 에 넣은 후 필요한 것2 전원을 넣는다.

      결과는? 쌀밥
}
 
밥짓기 결과 = 밥짓기(쌀)
 
 
PHP 로 작성해 본다면...
--------------------------------------------
function getRiceFood($rice)
{
        $tool_1 = "물";
        $tool_2 = "밥통";
 
        $result = $rice + $tool_1 + $tool_2;
 
        return $result;
}
 
$food =  getRiceFood("쌀");
----------------------------------------------
 
위의 함수는 문법상 잘 못된 구문입니다.. 왜냐하면 문자를 +(플러스) 로 더하는 것은 잘 못된 것이기 때문입니다..
 
그러나, 위와 같은 예제를 보여준 것은 함수에 대한 개념을 보다 쉽게 접근하기 위해서 입니다..
 
간단한 예를 하나들면
--------------------
function plus_num($num)
{
        retrun $num + 10;
}
 
echo plus_num(10);
 
결과 : 20
 
function plus_num1($num)
{
        $result = $num + 10;
}
 
echo plus_num1(10);
 
결과 : 결과없음
-------------------
 
위의 두 예를 보면 하나는 return 을 통해 결과값을 돌려주는 것과 돌려주지 않는 경우가 있는데, 이렇게 retrun 을 해 주지 않으면 결과값을 돌려받지 못합니다.
 
다음의 예를 보세요.. 
-------------------
 
function plus_num($num)
{
        $result = $num + 10;
        echo $result;
}
 
plus_num(10);
 
결과 : 20
-------------------
이 경우에는 return  을 해 주지 않았는데도 결과가 정상적으로 출력이 됩니다.
이 것은 이미 함수내에서 echo 를 통해 결과값을 출력해 주고 있기 때문에 굳이 리턴을 하지 않아도 화면상에는 출력이 되는 것입니다..
또한  echo plus_num1(10); 이 아닌 echo 를 빼도 출력이 된 것도 이미 함수내에서 echo 를 통해 출력시켰기 때문입니다...
 
이렇게 return 을 받고 받지 않고는 필요에 따라서 사용하면 됩니다..
 
 
 
 
하나 더
-------------------------------------------------
function plus_num($num)
{
        $a = 10;
        $result = $num + $a;
        return $result;
}
 
echo plus_num(10);
 
결과 : 20;
-------------------------------------------------
 
$a = 10;
function plus_num($num)
{
        $result = $num + $a;
        return $result;
}
 
echo plus_num(10);
 
결과 : 10;
-------------------------------------------------
 
$a = 10;
function plus_num($num)
{
        global $a;

        $result = $num + $a;
        return $result;
}
 
echo plus_num(10);
 
결과 : 20;
-------------------------------------------------
 
변수는 지역변수와 전역변수로 구분이 되는데, 모든 함수내에서 사용할 수 있는 변수를 전역변수라 하며 특정함수내에서만 사용할 수 있는 변수를 지역변수라 합니다..
 
만약, 함수 밖에서 선언된 변수를 함수내에서 사용을 하려면 global 처리를 해 주어야 합니다..
 
global $변수;
global $변수1, $변수2 , $변수3;
 
위와 같은 형태로 선언할 수 있습니다..
 
 
여기서 잠깐,
------------
 
Q. 함수는 꼭 만들어야 할까요?
A. 필요하면 만드세요.. 필요없는데 억지로 만들필요는 없습니다.
 
Q. date("Ymd") 와 같은 함수는 만들어 주지도 않았는데, 결과가 나옵니다.
A. 내장함수입니다. PHP에서는 상당히 많은 내장함수가 있으며 http://php.net 에서 모든 함수를 알아 볼 수 있습니다.
 
 
 
 
 
"함수"
 
"쌀을 줬더니 쌀밥을 주더라~"
"사과를 줬더니 깎아 주더라..." 

[출처] 빛남이

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
3285 URL Cache를 사용하여 웹을 더욱 빠르게 13 김영철 01.13 979
3284 php5 99 단국강토 01.02 1054
3283 php 세션css 99 단국강토 12.30 1065
3282 [hatelove님의 JBBS 알고리즘 강좌 9] 13 김영철 01.14 1069
3281 reset , foreach 13 김영철 01.13 1106
3280 png 99 단국강토 12.30 1120
3279 플래시로 만든 php 함수 사전 13 김영철 01.13 1162
3278 PHP강좌】PHP URL함수 13 김영철 01.13 1166
3277 foreach 와 배열 13 김영철 01.14 1172
3276 주화면의 최신글을 preload로 빠르게 13 김영철 01.13 1183
3275 [php] 내장함수 13 김영철 01.13 1188
3274 태그 허용 함수???? 이제 개념을 바꾸자 13 김영철 01.14 1205
3273 플래쉬 Panels 에 대한 기본개념들 99 단국강토 01.06 1212
3272 foreach 13 김영철 01.13 1213
3271 파일관련함수 13 김영철 01.13 1213
3270 [hatelove님의 JBBS 알고리즘 강좌 7] 13 김영철 01.14 1215
3269 PHP도 객체지향형 프로그램이다..!!(클래스,상속동...) 13 김영철 01.13 1215
열람중 PHP입문 - 함수 13 김영철 01.13 1216
3267 플래시에서 pc cam 영상보여주기 99 단국강토 02.16 1218
3266 php기본함수 정리!! 13 김영철 01.13 1219
3265 시스템콜인 open 계열 함수와 스트림기반의 fopen 계열.. 13 김영철 01.13 1221
3264 소스를 간편하게 만들어 주는 with문 99 단국강토 02.10 1224
3263 객체 정의하기[이론,예제] 99 단국강토 01.29 1229
3262 php 파일 업, 다운로드 13 김영철 01.13 1232
3261 역인덱스 게시판 | 13 김영철 01.14 1241
3260 파일업로드 썸네일 제작 class 13 김영철 01.13 1244
3259 초보자용 이것저것 몇가지 팁 13 김영철 01.14 1246
3258 간단 날짜계산 99 단국강토 02.16 1249
3257 window 객체 M 최고의하루 12.20 1249
3256 디렉토리 폴더 모든파일 표시 [php] 13 김영철 01.14 1250
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취