2.12. 함수

함수는 특정 기능을 나눠놓은 코드 조각이다. 기능을 분리함으로서 가독성과 사용성을 높일 수 있다.

<?php
function hello_php()
{
    echo "hello php";
}

hello_php();
echo "<br />";

function nicetomeet($var)
{
    echo "nice to meet $var";
}

nicetomeet("you");
echo "<br />";

function add($a, $b)
{
    $result = $a + $b;
    return $result;
}

$result = add(1, 2);
echo $result;
echo "<br />";

function defaultfunc($name='yse'){
    echo "my name is $name";
}

defaultfunc();
echo "<br />";
defaultfunc('30min php');
echo "<br />";

위 코드를 funcs.php 파일에 저장하고 브라우저에서 결과를 확인한다.

hello php
nice to meet you
3
my name is yse
my name is 30min php


함수는 function 키워드로 정의하고 바로 다음에 이름을 기술한다. () 안에 파라미터를 선언하며 블럭{} 안에 내용을 기술한다.

function 함수이름(파라미터1,파라미터2..){
  함수 내용
}

첫번째 함수 hello_php 는 기본적인 함수의 형태를 보여준다.

function hello_php()
{
    echo "hello php";
}

호출할 때는 함수명(파라미터들) 형태로 호출할 수 있다. 두번째 함수 nicetomeet 는 파라미터가 있는 함수를 정의하는 예시이다.

function nicetomeet($var)
{
    echo "nice to meet $var";
}

호출해 본다.

nicetomeet("you");

결과는 아래와 같다.

nice to meet you

함수는 결과를 반환(return) 할 수 있다. 리턴한 결과는 호출한 곳에서 사용 가능하다.
세번째 함수 add 는 파라미터 여러개를 전달받아서 결과를 반환하는 함수의 예시다.

function add($a, $b)
{    
    return $result; // 결과를 반환한다.
}

호출해 본다.

$result = add(1, 2);

결과는 아래와 같다.

3

함수는 기본 파라미터(default parameter) 를 가질 수 있다. 파라미터가 전달되지 않으면 기본 파라미터를 사용하고 파라미터를 전달하면 전달된 파라미터를 사용하게 된다.
네번째 함수 defaultfunc 는 기본 파라미터가 있는 함수다.

function defaultfunc($name='yse'){
    echo "my name is $name";
}

파라미터가 없을 경우는 아래와 같은 결과가 나온다.

defaultfunc();
my name is yse

파라미터가 전달되었을 때는 파라미터로 기본값이 대체된다.

defaultfunc('30min php');
Copymy name is 30min php