프로그램 진행 순서
사용자 함수에서는 함수가 정의된 부분을 제외한 영역, 즉 메인 루틴에서 프로그램이 시작됩니다.
다음 예제를 통하여 사용자 함수가 사용되는 경우 프로그램의 진행 순서에 대해 알아봅시다.
04/ex4-4.php
<?php
function hello() { // 함수 정의 // 02
for($i = 1; $i <= 3; $i++)
echo ("안녕하세요.");
} // 05
hello(); // 함수 호출 // 07
echo "<br>";
hello(); // 함수 호출 // 09
echo "<br>";
hello(); // 함수 호출 // 11
echo "<br>";
?>

02~05 hello() 함수를 정의합니다. hello() 함수는 '안녕하세요.'를 브라우저 화면에 출력하는 역할을 수행합니다.
2~5행에서와 같이 함수가 정의된 영역을 서브(Sub Routine)이라고 하고 함수 정의 영역을 제외한 영역을 메인 루틴(Main Routine)이라고 부릅니다.
프로그램 실행은 메인 루틴의 제일 앞(7행)에서 시작하여 메인 루틴 끝(12행)에서 종료됩니다.
07 hello();
7행은 메인 루틴이 시작되는 행입니다.
hello() 함수를 호출합니다. hello() 함수가 호출되면 2~5행에서 정의된 hello() 함수, 즉 서브 루틴이 실행됩니다. 따라서 실행 결과의 첫 번째 줄에 '안녕하세요.안녕하세요.안녕하세요.'가 출력됩니다.
09 hello();
hello() 함수를 재호출합니다. 2~5행에서 정의된 hello() 힘수가 실행됩니다. 따라서 실행 결과의 두 번째 줄에 '안녕하세요.안녕하세요.안녕하세요.'가 출력됩니다.
11 hello();
hello() 함수를 재호출합니다. 2~5행에서 정의된 hello() 힘수가 실행됩니다. 따라서 실행 결과의 세 번째 줄에 '안녕하세요.안녕하세요.안녕하세요.'가 출력됩니다.
위 예제 프로그렘의 진행 순서를 정리하면 다음과 같습니다.
| 7행 -> 2~5행 -> 8행 -> 9행 -> 2~5행 -> 10행 -> 11행 -> 2~5행 -> 12행 |