2025. 6. 28. 17:42ㆍ프로그램/PHP 초급
📚 PHP 초급 - 5주차: 함수 - 05 사용자 정의 함수

안녕하세요! #PHP 초급 강좌 5주차 마지막 시간입니다. 지난 시간에는 PHP가 기본적으로 제공하는 강력한 #내장함수 들에 대해 알아보았습니다. 이번 시간에는 우리가 직접 필요에 따라 만들어 사용할 수 있는 사용자 정의 함수 (User-Defined Functions) 에 대해 자세히 학습해 보겠습니다. 사용자 정의 함수를 통해 코드의 재사용성을 높이고, 프로그램을 더욱 구조적으로 설계할 수 있습니다.
1. 사용자 정의 함수란 무엇인가?

#사용자정의함수 란 개발자가 특정 작업을 수행하기 위해 직접 정의하는 함수를 의미합니다. PHP는 내장 함수 외에도 개발자가 원하는 기능을 자유롭게 구현할 수 있도록 강력한 함수 정의 기능을 제공합니다.
2. 사용자 정의 함수 정의 방법

사용자 정의 함수는 function 키워드를 사용하여 정의합니다. 기본적인 문법 구조는 다음과 같습니다.
<?php
function 함수이름(매개변수1, 매개변수2, ...) {
// 함수가 수행할 코드
// 선택적으로 값을 반환할 수 있습니다.
return 반환값;
}
?>
- function: 함수를 정의하기 위해 사용하는 예약어입니다.
- 함수이름: 함수를 호출할 때 사용할 고유한 이름입니다. 함수 이름은 영문자, 숫자, 밑줄(_)로 구성될 수 있으며, 숫자로 시작할 수 없고, PHP 예약어를 사용할 수 없습니다. 함수 이름은 대소문자를 구별하지 않지만, 일반적으로 소문자나 카멜 케이스(camelCase)를 사용하는 것이 관례입니다.
- 매개변수(Parameter): 함수가 외부로부터 값을 전달받아 사용할 변수 목록입니다. 괄호 () 안에 쉼표로 구분하여 여러 개를 정의할 수 있으며, 필요하지 않다면 생략할 수 있습니다. 매개변수는 함수 내부에서 지역 변수처럼 취급됩니다.
- {}: 중괄호 안에는 함수가 실제로 수행할 코드를 작성합니다. 이 부분을 함수 본문(Function Body) 이라고 합니다.
- return: (선택 사항) 함수가 작업을 완료한 후 결과를 호출한 곳으로 반환할 때 사용합니다. return 문이 실행되면 함수는 즉시 종료됩니다. 반환할 값이 없다면 return; 또는 return null; 을 사용하거나 return 문 자체를 생략할 수 있습니다. 이 경우 함수는 null 값을 반환합니다.
3. 사용자 정의 함수 예제

3.1. 매개변수 없는 함수
가장 기본적인 형태의 사용자 정의 함수로, 특정 메시지를 출력하는 함수를 만들어 보겠습니다.
<?php
function displayWelcomeMessage() {
echo "환영합니다! PHP 사용자 정의 함수를 배우는 시간입니다.<br>";
}
// 함수 호출
displayWelcomeMessage(); // 출력: 환영합니다! PHP 사용자 정의 함수를 배우는 시간입니다.
?>
3.2. 매개변수가 있는 함수
외부에서 전달된 값을 이용하여 동작하는 함수를 만들어 보겠습니다. 두 개의 숫자를 더한 결과를 출력하는 함수입니다.
<?php
function printSum($num1, $num2) {
$sum = $num1 + $num2;
echo "두 수의 합: " . $sum . "<br>";
}
// 함수 호출
printSum(10, 5); // 출력: 두 수의 합: 15
printSum(25, 75); // 출력: 두 수의 합: 100
?>
3.3. 반환 값이 있는 함수
계산 결과를 직접 출력하는 대신, 결과값을 반환하여 호출하는 쪽에서 활용할 수 있도록 만들어 보겠습니다. 두 개의 숫자를 곱한 결과를 반환하는 함수입니다.
<?php
function multiplyNumbers($a, $b) {
$product = $a * $b;
return $product; // 결과값을 반환
}
// 함수 호출 및 반환 값 활용
$result1 = multiplyNumbers(4, 6);
echo "4 * 6 = " . $result1 . "<br>"; // 출력: 4 * 6 = 24
$result2 = multiplyNumbers(12, 3);
$finalResult = $result2 + 10;
echo "12 * 3 에 10을 더한 값: " . $finalResult . "<br>"; // 출력: 12 * 3 에 10을 더한 값: 46
?>
3.4. 매개변수 기본값이 있는 함수
함수 호출 시 특정 매개변수의 값을 생략했을 경우 사용할 기본값을 설정할 수 있습니다.
<?php
function greetUser($name = "방문객") {
echo "안녕하세요, " . $name . "님!<br>";
}
// 함수 호출
greetUser(); // 출력: 안녕하세요, 방문객님! (기본값 사용)
greetUser("김민지"); // 출력: 안녕하세요, 김민지님! (전달된 값 사용)
?>
3.5. 가변 인자 함수
함수가 호출될 때 전달되는 인수의 개수를 정해놓지 않고 유동적으로 처리할 수 있습니다.
<?php
function calculateAverage(...$numbers) {
$count = count($numbers);
if ($count === 0) {
return 0;
}
$sum = array_sum($numbers);
return $sum / $count;
}
// 함수 호출
echo "평균 1: " . calculateAverage(10, 20, 30) . "<br>"; // 출력: 평균 1: 20
echo "평균 2: " . calculateAverage(5, 10, 15, 20, 25) . "<br>"; // 출력: 평균 2: 15
echo "평균 3: " . calculateAverage() . "<br>"; // 출력: 평균 3: 0
?>
4. 사용자 정의 함수 작성 시 주의사항

- 함수 이름의 규칙 준수: 영문자, 숫자, 밑줄로 구성하며 숫자로 시작할 수 없고, 예약어는 피해야 합니다.
- 명확한 함수 이름 사용: 함수 이름만 보고도 어떤 기능을 수행하는지 쉽게 이해할 수 있도록 의미 있는 이름을 짓는 것이 중요합니다.
- 적절한 매개변수 설계: 함수가 필요로 하는 입력 값을 명확히 정의하고, 매개변수의 개수를 적절하게 유지하는 것이 좋습니다.
- 일관성 있는 반환 값: 함수가 반환하는 값의 타입과 의미를 일관성 있게 유지하여 코드의 예측 가능성을 높여야 합니다.
- 함수의 역할 분담: 하나의 함수가 너무 많은 기능을 수행하지 않도록, 각 함수가 명확한 하나의 역할만 담당하도록 설계하는 것이 좋습니다 (단일 책임 원칙).
결론
이번 시간에는 #PHP 에서 개발자가 직접 정의하여 사용할 수 있는 #사용자정의함수 에 대해 자세히 알아보았습니다. 함수 정의 방법, 다양한 형태의 매개변수 활용법, 그리고 반환 값을 사용하는 방법을 익혔습니다. 사용자 정의 함수를 능숙하게 사용하는 것은 PHP 프로그래밍 능력을 향상시키는 핵심적인 요소입니다. 앞으로 다양한 문제를 해결하기 위해 자신만의 함수를 만들어보고, 이를 통해 코드의 효율성과 유지보수성을 높이는 경험을 해보시길 바랍니다.
'프로그램 > PHP 초급' 카테고리의 다른 글
| 📚 PHP 초급 - 6주차: 배열 - 02 인덱스 배열, 연관 배열 (0) | 2025.06.28 |
|---|---|
| 📚 PHP 초급 - 6주차: 배열 - 01 배열 선언 및 초기화 (0) | 2025.06.28 |
| 📚 PHP 초급 - 5주차: 함수 - 04 내장 함수 (문자열, 배열 관련 함수 등) (0) | 2025.06.28 |
| 📚 PHP 초급 - 5주차: 함수 - 03 반환 값 (0) | 2025.06.28 |
| 📚 PHP 초급 - 5주차: 함수 - 02 매개변수 (기본값, 가변 인자) (0) | 2025.06.28 |