본문 바로가기
Study/php

PHP 기초] 함수

by Answer Choi 2015. 9. 24.
반응형

PHP의 함수도 여느 함수와 같습니다.


다만 <?php ~ ?> 사이에 들어가기만 하면 됩니다.


먼저 간단한 함수예제입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<html>
    <body>
        <?php
        function sum_number(){
                $i=0;
                while($i<10){
                    $i++;
                    echo $i.'<br>';
                }
        }
        sum_number();
       ?>
    </body>
</html>
cs


Line 4~10은 함수의 내용이고 Line 11은 함수를 호출하는 부분입니다.


결과를 출력하면


아주 간단한 함수였고, 이제 인자를 받는 함수를 만들어 보겠습니다.


1
2
3
4
5
6
7
8
9
10
11
<html>
    <body>
        <?php
        function sum_number($fir,$sec){
                $sum=$fir+$sec;
                echo $sum;
        }
        sum_number(1,4);
       ?>
    </body>
</html>
cs


Line 4에 보시면 파라메터 2개를 받는 함수입니다.


그리고 Line 8에서 인자 2개를 함수에 전달해 줍니다.


그 결과는



이렇게 나타납니다.


그러면 결과값을 받는 함수를 만들어 보겠습니다.


1
2
3
4
5
6
7
8
9
10
11
<html>
    <body>
        <?php
        function sum_number($fir,$sec){
                $sum=$fir+$sec;
                return $sum;
        }
        echo 'result is '.sum_number(1,4);
       ?>
    </body>
</html>
cs


Line 8에서 함수로 인자 2개를 전달하고, 함수는 연산을 해서 다시 돌려줍니다.(Line 6)


결과는 아래와 같습니다.



함수 기본 인자값


함수의 기본인자값은 인자가 전달 되지 않았을 경우 default로 세팅하는 것을 말합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
    <body>
        <?php
        function sum_number($fir,$sec=10){
                $sum=$fir+$sec;
                return $sum;
        }
        echo 'result is '.sum_number(1,4);
        echo '<br>';
        echo 'result2 is '.sum_number(1);
       ?>
    </body>
</html>
cs


Line 8은 인자값을 모두 전달하였고, Line 10은 인자를 하나만 전달했습니다.


그리고 Line 4의 함수를 보면 두번째 인자는 기본값이 들어가 있습니다.


결과는


첫번째의 경우 전달한 인자로 연산을 하였고, 


두번째의 경우 전달인자 하나와 기본값으로 연산을 하였습니다.


주의할 점은 함수의 파라메터 기본값은 뒤쪽 파라메터만 가질 수 있습니다.


다시 말하면, 모두가 기본값을 가지면 상관없지만, 부분적으로 기본값을 가지면, 앞쪽 파라메터는 


기본값이 없는 파라메터가 와야 합니다.


1
2
3
4
<?php
        function sum_number($fir=5,$sec=10)
        function sum_number($fir=5,$sec)
?>
cs


Line 2처럼 파라메터 모두가 기본값을 가지는 건 상관이 없지만,


Line 3처럼 기본값이 없는 파라메터가 뒤에올 순 없습니다.


왜냐하면 함수를 호출할때, 어느 인자가 기본값을 가지는 지 알 수 없기때문입니다.



반응형

'Study > php' 카테고리의 다른 글

PHP 기초] 간단한 파일제어  (0) 2015.09.25
PHP 기초 ] include, namespace  (0) 2015.09.24
PHP 기초 ] 배열  (1) 2015.09.24
PHP 기초] 반복문  (0) 2015.09.23
PHP 기초] 조건문  (0) 2015.09.23

인기글