PHP입문 - 함수
작성자 : 김영철
등록날짜 : 2009.01.13 22:52
여기에서는 "함수(Function)" 에 대해서 알아보겠습니다..
함수는 중/고등학교시절 수학시간에 많이 접하던 단어입니다.
(사실 필자는 수학을 가장 싫어하며 그 시절 `함수`가 무엇인지 이해하지 못했습니다.)
위의 함수들은 수학함수입니다..
위의 수학함수를 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 에서 모든 함수를 알아 볼 수 있습니다.
"함수"
"쌀을 줬더니 쌀밥을 주더라~"
"사과를 줬더니 깎아 주더라..."
함수는 중/고등학교시절 수학시간에 많이 접하던 단어입니다.
(사실 필자는 수학을 가장 싫어하며 그 시절 `함수`가 무엇인지 이해하지 못했습니다.)
위의 함수들은 수학함수입니다..
위의 수학함수를 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단계 공식" |
☞자세히보기 |
|
|