2025. 6. 28. 17:00ㆍ프로그램/PHP 초급
📚 PHP 초급 - 5주차: 함수 - 함수 정의 및 호출

안녕하세요! #PHP 초급 강좌 5주차에 오신 것을 환영합니다. 지난 시간에는 #반복문 의 흐름을 제어하는 break와 continue 키워드를 함수 내에서 어떻게 사용하는지 알아보았습니다. 이번 시간에는 #PHP 의 가장 기본적이고 핵심적인 개념 중 하나인 함수에 대해 심층적으로 다루어 보겠습니다. 함수를 정의하고 호출하는 방법을 익혀 코드를 더 효율적이고 체계적으로 관리하는 방법을 배워봅시다.
1. 함수란 무엇인가?

#함수 란 특정 작업을 수행하도록 설계된 코드 블록입니다. 우리가 흔히 사용하는 echo, print_r, var_dump 등도 모두 미리 정의된 함수들입니다. 함수를 사용하면 다음과 같은 이점을 얻을 수 있습니다.
- 재사용성 증가: 한 번 정의한 함수는 여러 번 호출하여 재사용할 수 있습니다. 동일한 코드를 반복해서 작성할 필요가 없어집니다.
- 코드의 모듈화: 프로그램을 작은 기능 단위로 나누어 관리할 수 있어, 코드의 가독성과 유지보수성이 향상됩니다.
- 오류 감소: 특정 기능에 오류가 발생했을 때, 해당 함수만 수정하면 되므로 오류를 쉽게 찾아내고 수정할 수 있습니다.
2. 함수 정의하기

#PHP 에서 함수를 정의할 때는 function 키워드를 사용합니다. 기본 문법은 다음과 같습니다.
<?php
function 함수이름(매개변수1, 매개변수2, ...) {
// 함수가 실행할 코드
// 선택적으로 값을 반환할 수 있습니다.
return 반환값;
}
?>
- function: 함수를 정의할 때 사용하는 필수 키워드입니다.
- 함수이름: 함수의 목적을 명확히 나타내는 이름을 지정합니다. (예: calculateSum, displayMessage) 함수 이름은 영문자, 숫자, 밑줄(_)로 구성될 수 있으며, 숫자로 시작할 수 없습니다. 대소문자를 구분하지 않지만, 일반적으로 카멜 케이스(camelCase)를 사용하는 것이 관례입니다.
- 매개변수(Parameter): 함수가 작업을 수행하는 데 필요한 값을 외부로부터 받을 때 사용합니다. 괄호 () 안에 쉼표로 구분하여 여러 개를 정의할 수 있으며, 필요 없으면 생략할 수 있습니다.
- {}: 중괄호 안에는 함수가 실행할 실제 코드를 작성합니다.
- return: (선택 사항) 함수가 작업을 마친 후 결과를 호출한 곳으로 돌려줄 때 사용합니다. return 문이 실행되면 함수는 즉시 종료됩니다. return 문이 없으면 함수는 NULL을 반환합니다.
2.1. 매개변수 없는 함수
가장 기본적인 형태의 함수입니다. 특정 고정된 작업을 수행할 때 유용합니다.
<?php
function sayHello() {
echo "안녕하세요, PHP 함수를 배우고 있습니다!<br>";
}
?>
2.2. 매개변수 있는 함수
함수 외부로부터 값을 전달받아 동적인 작업을 수행할 수 있도록 합니다.
<?php
function greetUser($name) { // $name이 매개변수
echo "환영합니다, " . $name . "님!<br>";
}
?>
2.3. 반환값이 있는 함수
함수가 어떤 계산이나 처리의 결과를 돌려줄 필요가 있을 때 return을 사용합니다.
<?php
function addNumbers($num1, $num2) {
$sum = $num1 + $num2;
return $sum; // 계산된 합계를 반환
}
?>
3. 함수 호출하기

함수를 정의했다고 해서 자동으로 실행되는 것은 아닙니다. 정의된 함수를 사용하려면 함수 호출(Function Call) 이라는 과정을 거쳐야 합니다. 함수 호출은 함수 이름을 작성하고 그 뒤에 괄호 ()를 붙이는 방식으로 이루어집니다. 매개변수가 필요한 함수라면 괄호 안에 값을 전달합니다. 이 전달되는 값을 #인수(Argument) 라고 합니다.
<?php
// 매개변수 없는 함수 호출
sayHello(); // 출력: 안녕하세요, PHP 함수를 배우고 있습니다!
echo "<br>";
// 매개변수 있는 함수 호출
greetUser("김철수"); // 출력: 환영합니다, 김철수님!
greetUser("이영희"); // 출력: 환영합니다, 이영희님!
echo "<br>";
// 반환값이 있는 함수 호출
$result = addNumbers(5, 7); // addNumbers 함수를 호출하고 반환값을 $result 변수에 저장
echo "5와 7의 합은: " . $result . "입니다.<br>"; // 출력: 5와 7의 합은: 12입니다.
echo "10과 20의 합은: " . addNumbers(10, 20) . "입니다.<br>"; // 직접 출력 가능
?>
여기서 sayHello(), greetUser("김철수"), addNumbers(5, 7) 부분이 바로 함수를 호출하는 부분입니다. greetUser 함수에 전달된 "김철수", "이영희"는 인수(Argument) 이고, addNumbers 함수에 전달된 5와 7도 인수입니다.
4. 매개변수의 기본값 (Default Parameter Values)

#PHP 에서는 함수를 정의할 때 매개변수에 기본값을 지정할 수 있습니다. 이렇게 하면 함수를 호출할 때 해당 매개변수에 값을 전달하지 않아도 기본값이 사용됩니다.
<?php
function sendMessage($message, $recipient = "모든 사용자") { // $recipient에 기본값 설정
echo $recipient . "에게 메시지: " . $message . "<br>";
}
// 기본값이 사용되는 경우
sendMessage("안녕하세요!"); // 출력: 모든 사용자에게 메시지: 안녕하세요!
// 기본값이 오버라이드(재정의)되는 경우
sendMessage("오늘 날씨가 좋네요.", "박영희"); // 출력: 박영희에게 메시지: 오늘 날씨가 좋네요.
?>
주의사항: 기본값을 가진 매개변수는 항상 기본값이 없는 매개변수 뒤에 위치해야 합니다.
<?php
// 올바른 예시
function correctOrder($param1, $param2 = "기본값") { /* ... */ }
// 잘못된 예시 (Syntax Error 발생)
// function wrongOrder($param1 = "기본값", $param2) { /* ... */ }
?>
5. 가변 인자 함수 (Variable-length Argument Lists)
#PHP 5.6부터는 #...`` 연산자를 사용하여 함수가 #가변 인자 를 받을 수 있도록 정의할 수 있습니다. 이는 함수가 받을 인수의 개수를 미리 알 수 없을 때 유용합니다.
<?php
function sumAll(...$numbers) { // ...$numbers는 배열 형태로 모든 인수를 받습니다.
$total = 0;
foreach ($numbers as $number) {
$total += $number;
}
return $total;
}
echo "합계 1: " . sumAll(1, 2, 3) . "<br>"; // 출력: 합계 1: 6
echo "합계 2: " . sumAll(10, 20, 30, 40, 50) . "<br>"; // 출력: 합계 2: 150
echo "합계 3: " . sumAll(5) . "<br>"; // 출력: 합계 3: 5
echo "합계 4: " . sumAll() . "<br>"; // 출력: 합계 4: 0
?>
...$numbers는 전달된 모든 인수를 $numbers라는 이름의 배열로 묶어줍니다.
결론
이번 #PHP 초급 5주차 강좌에서는 #함수 의 정의부터 호출, 매개변수 사용법, 그리고 기본값 및 가변 인자까지 폭넓게 다루어 보았습니다. 함수는 PHP 프로그래밍의 가장 기본적인 구성 요소이며, 코드를 구조화하고 재사용성을 높이는 데 필수적입니다. 오늘 배운 내용을 바탕으로 자신만의 함수를 정의하고 호출하는 연습을 꾸준히 해보시길 바랍니다.
'프로그램 > PHP 초급' 카테고리의 다른 글
| 📚 PHP 초급 - 5주차: 함수 - 03 반환 값 (0) | 2025.06.28 |
|---|---|
| 📚 PHP 초급 - 5주차: 함수 - 02 매개변수 (기본값, 가변 인자) (0) | 2025.06.28 |
| 📚 PHP 초급 - 4주차 - 05 break, continue (0) | 2025.06.28 |
| 📚 PHP 초급 - 4주차 - 04 foreach 문 (배열에 특화) (0) | 2025.06.28 |
| 📚 PHP 초급 - 4주차 - 03 for, while, do-while 문 (0) | 2025.06.28 |