PHP 매뉴얼
이전 | 12. 장. 함수 | 다음

# 함수 인자

함수 인자를 통해서 함수에 정보를 넘겨줄수 있다. 이런 함수 인자는 콤마(,)로 구별되는 변수나 상수의 목록이다.

PHP는 값에 의한 인자 전달(passing by value) (기본값), 참조에 의한 전달(passing by reference), 기본 인자 값(default argument value)기능 을 지원한다. 가변 인자 목록(variable-length argument)은 PHP 4이후 버전에서만 지원된다; 더 자세한 정보는 가변 인자 목록섹션과 func_num_args(), func_get_arg(), func_get_args()함수 레퍼런스를 참고. PHP 3에서는 함수에 인자 배열을 넘겨줌으로써 비슷한 효과를 낼수있다:

예 12-4. 함수에 배열 넘겨주기

`<?php function takes_array($input) { echo "$input[0] + $input[1] = ", $input[0]+$input[1]; } ?>`

## 참조에 의한 인자 전달하기

기본적으로, 함수 인자는 값에 의해 전달된다 (그래서 함수내의 인자값 이 변경되도 함수 밖에서는 바뀌지 않는다). 함수가 그 인자까지 변경가능하게 하려면, 참조에 의해 인자를 전달해야 한다.

함수의 인자를 참조로 전달하려면, 함수 선언시에 엠퍼센트(&)를 인자명 앞에 덧붙이면 된다:

예 12-5. 참조에 의해 함수 인자 전달하기

`<?php function add_some_extra(&$string) { $string .= 'and something extra.'; } $str = 'This is a string, '; add_some_extra($str); echo $str; // outputs 'This is a string, and something extra.' ?>`

## 기본 인수 값

함수는 다음과 같이 스칼라 인자에 대해 C++스타일 기본값으로 지정할수있다:

예 12-6. 함수에 기본 인자 사용하기

`<?php function makecoffee ($type = "cappuccino") { return "Making a cup of $type.\n"; } echo makecoffee (); echo makecoffee ("espresso"); ?>`

위 예제 코드의 출력은 다음과 같다:

    Making a cup of cappuccino.
    Making a cup of espresso.

기본값은 상수 표현식이 될수 있으나 (예를 들면) 변수나 클래스 멤버가 될수는 없다.

기본 인자를 사용할때에는 모든 기본값은 기본값을 쓰지 않는 인자의 오른쪽으로 가야 한다; 그렇지 않으면, 기대하던대로 작동하지 않을것이다. 다음 예제 코드를 참고:

예 12-7. 기본 함수 인자가 잘못 사용된 예

`<?php function makeyogurt ($type = "acidophilus", $flavour) { return "Making a bowl of $type $flavour.\n"; } echo makeyogurt ("raspberry"); // won't work as expected ?>`

위 예제 코드의 출력은 다음과 같다:

    Warning: Missing argument 2 in call to makeyogurt() in
    /usr/local/etc/httpd/htdocs/php3test/functest.html on line 41
    Making a bowl of raspberry .

위 코드를 아래 코드와 비교하라:

예 12-8. 기본 함수 인자의 정확한 사용예

`<?php function makeyogurt ($flavour, $type = "acidophilus") { return "Making a bowl of $type $flavour.\n"; } echo makeyogurt ("raspberry"); // works as expected ?>`

이 예제코드의 출력은 다음과 같다:

    Making a bowl of acidophilus raspberry.

## 가변 인자 목록

PHP 4는 사용자 선언 함수에서 가변 변수 목록 기능을 지원한다. 이런 기능은 func_num_args(), func_get_arg(), func_get_args()함수를 사용하여 손쉽게 사용가능하다.

특별한 문법이 필요하지 않다. 인자 목록은 함수선언부에서 밝혀야하고 일반 인자와 동일하게 작동할것이다.

이전 | 처음으로 | 다음
함수 | 위로 | 값 돌려주기