PHP의 진정한 힘은 함수로부터 나온다고 할수 있습니다.

PHP에는 700개 이상의 내장 함수가 사용 가능 합니다.



 

PHP 함수


이 튜토리얼에서는, 자기 자신만의 함수를 만드는법에 대해 보여드릴려고 합니다.

레퍼런스나 내장 함수의 예에 대해서는 나중에 다뤄보겠습니다.



 

PHP 함수 만들기

함수는 우리가 필요할때마다 실행될수 있는 코드 블럭(명령 코드 모음)의 일종입니다.



PHP에서 함수 만들기:

  • 모든 함수는 "function()" 이란 단어와 함께 시작됩니다.
  • 함수 이름짓기 - 이름으로 그 함수가 무엇을 하는지 이해할 수 있어야 좋은 함수 이름이라 할 수 있습니다. 이름은 문자나 _(underscore)로 시작할 수 있습니다.(숫자가 아닙니다)
  • "{" 추가하기 - 함수의 코드는 중괄호 다음부터 시작됩니다.
  • 함수에 코드를 입력합니다.
  • "}" 추가하기 - 함수는 닫는 중괄호로 끝납니다.

예제


호출되면 제 아이디를 표시하는 단순한 함수의 예입니다:

<html>
<body>
<?php
function writeMyName()
{
echo "Sirjhswin";
}
writeMyName();
?>
</body>
</html>


 

PHP 함수 사용하기


이제 PHP코드내에서 함수를 사용해 봅시다:

<html>
<body>
<?php
function writeMyName()
{
echo "Sirjhswin";
}
echo "Hello world!<br />";
echo "My name is ";
writeMyName();
echo ".<br />That's right, ";
writeMyName();
echo " is my name.";
?>
</body>
</html>


위의 코드는 아래와 같이 출력됩니다:

Hello world!
My name is Sirjhswin.
That's right, Sirjhswin is my name.


 

PHP 함수 - 파라미터(매개변수) 추가하기

첫번째 함수인 (writeMyName())은 매우 간단한 함수 입니다. 오직 정적인 문자열을 출력할 뿐이죠.


함수에 더 많은 기능을 추가하기 위해선, 파라미터(매개변수)를 추가해야 합니다.
파라미터는 일종의 변수와도 같습니다.


함수를 가만히 살펴보다 보면, 다음처럼 함수 이름다음에 괄호가 있는것을 보실수 있을겁니다: writeMyName()

파라미터는 괄호안에 정의 됩니다.


예제 1

이번 예제에서는 이름은 동일하게 나오지만, 성만 다르게 출력됩니다:

<html>
<body>
<?php
function writeMyName($fname)
{
echo $fname . "민호 입니다.<br>";
}
echo "제 이름은 ";
writeMyName("강");
echo "제 이름은 ";
writeMyName("정");
echo "제 이름은 ";
writeMyName("이");
?>
</body>
</html>

위의 코드는 아래와 같이 출력됩니다:

제 이름은 강민호 입니다.
제 이름은 정민호 입니다.
제 이름은 이민호 입니다.

예제 2


아래 예제는 두개의 파라미터를 가지고 있습니다:

<html>
<body>
<?php
function writeMyName($fname,$punctuation)
{
echo $fname . "민호 입니다" . $punctuation . "<br>";
}
echo "제 이름은 ";
writeMyName("강",".");
echo "제 이름은 ";
writeMyName("정","!");
echo "제 이름은 ";
writeMyName("이","...");
?>
</body>
</html>

위 코드의 결과는 아래와 같습니다:

제 이름은 강민호 입니다.
제 이름은 정민호 입니다!
제 이름은 이민호 입니다...
  

 

PHP 함수 -값 반환하기

함수는 또한 값을 반환하는데 사용될 수 있습니다.

예제

<html>
<body>
<?php
function add($x,$y)
{
$total = $x + $y;
return $total;
}
echo "1 + 16 = " . add(1,16);
?>
</body>
</html>

위의 코드는 아래와 같이 출력됩니다:

1 + 16 = 17