함수 값의 반환
함수를 사용하다 보면 정의 함수에서 얻어진 결과 값을 호출한 함수 측에서 돌려줄 필요가 있습니다. 이것을 함수 값으 반환이라고 하며 사용 형식은 다음과 같습니다.
| function 함수명(매개변수1, 매개변수2, ...) { ... return 변수명; // 함수 값의 반환 } ... 함수명(인수1, 인수2, ...) |
ex4-6.php에 함수 값의 반환의 개념을 적용하여 다시 작성해보면 다음과 같습니다.
04/ex4-7.php
<?php
function hap($n) { // 02
$sum = 0;
for ($i = 1; $i <= $n; $i++)
$sum += $i;
return $sum; // 함수 값의 반환
} // 08
echo "1~10 합계 : ".hap(10)."<br>"; // 10
echo "1~100 합계 : ".hap(100)."<br>"; // 11
?>

02~08 hap() 함수를 정의합니다. hap() 함수는 1에서 n까지의 정수의 합을 구한 결과인 변수 $sum을 7행의 return문에 의해 호출한 함수 측에 반환합니다.
10 hap(10)dms 2~8행의 정의 함수 hap()을 호출합니다. 정의 함수 hap()을 실행한 최종 결과 값인 $sum(값:55)은 7행 return $sum에 의해 호출한 함수 측에 반환됩니다. 따라서 $hap(10)dms $sum의 값인 55를 가집니다.
echo문에 의해 실행 결과의 첫 번째 줄에 나타난 포맷으로 1~10의 합계 55가 출력됩니다.
11 hap(100)은 2~8행 정의 함수 hap()를 재호출합니다. 정의 함수 hap()를 실행한 최종 결과 값인 $sum(값:5050)이 호출한 함수 측에 반환됩니다. 따라서 $hap(100)은 $sum의 값 5050을 가집니다.
echo문에 의해 실행 결과의 두 번째 줄에서와 같은 결과가 출력됩니다.
사용자 함수를 이용하여 원의 넓이를 구하는 다음의 프로그램을 살펴봅시다.
<?php
function circle_area($r) { // 02
$result = $r * $r * 3.14;
return $result;
} // 06
$radius = 10; // 반지름 // 08
$area = circle_area($radius); // 09
echo "반지름 : ".$radius."<br>"; // 11
echo "원의 넓이 : ".$area; // 12
?>
02~06 circle_area() 함수를 정의합니다. circle_area() 함수는 원의 넓이를 구해 호출한 함수 측에 반환하는 역할을 수행합니다.
08 $radius에 원의 반지름 10을 입력합니다.
09 오른쪽에 있는 circle_area($radius)는 2~6행에 정의 함수 circle_areal 함수를 호출합니다. 이때 인수 Sradius(값: 10)는 정의 함수의 매개변수 $r에 복사됩니다. 정의 함수 circle_area0가 실행되면 3행에 의해 얻어진 원의 넓이를 의미하는 변수$result(값:314)는 5행의 return Sresult에 의해 호출 함수 측에 반환됩니다.
함수 호출 후에 cir_area(Sradius)는 정의 함수에서 반환된 5행 Sresult의 값 314를 가집니다. 이 값을 $area에 저장하면 $area는 314의 값을 가집니다.
11 반지름 $radius 값 10을 실행 결과의 첫 번째 줄에서와 같은 포맷으로 출력합니다.
12 원의 넓이 $area를 실행 결과의 두 번째 줄에서와 같이 출력합니다.