PHP에서의 루프와 return
1부터 5까지의 숫자의 합을 반환하는 함수가 있다고 가정해 보겠습니다:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
}
return $sum;
}
$res = func();
echo $res; // 15를 출력합니다
?>
이제 return을
루프 내부에 배치해 보겠습니다:
<?php
function func() {
$sum = 0;
for ($i = 1; $i <= 5; $i++) {
$sum += $i;
return $sum;
}
}
$res = func();
echo $res;
?>
이 경우 루프는 단 한 번의 반복만 실행되고 함수(그리고 루프)에서 자동으로 종료됩니다. 그리고 한 번의 반복에서 변수 $sum에는
전체 합계가 아닌 숫자 1만 담기게 됩니다.
다음 코드를 실행한 결과 화면에 무엇이 출력될까요?
<?php
function func($num) {
$sum = 0;
for ($i = 1; $i <= $num; $i++) {
$sum += $i;
return $sum;
}
}
echo func(5);
?>
그 이유를 설명하세요.
이 코드의 작성자는 무엇을 의도했을까요? 작성자의 실수를 수정하세요.