함수 정의와 호출
매개변수와 반환 값이 있는 함수를 직접 만듭니다.
함수 정의와 호출은(는) CoddyKit의 무료 PHP Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 PHP Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. PHP Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
함수를 사용하는 이유
함수를 사용하면 재사용 가능한 로직을 하나의 이름으로 묶어 코드를 반복하지 않고 여러 번 호출할 수 있습니다. 장점은 다음과 같습니다:
- 반복을 피할 수 있습니다(DRY 원칙)
- 테스트와 디버깅이 쉬워집니다
- 코드 자체가 설명이 되도록 작성할 수 있습니다
함수 정의하기
function 키워드, 이름, 선택적 매개변수, 본문을 사용하십시오:
<?php
function greet(string $name): string {
return 'Hello, ' . $name . '!';
}
echo greet('Alice'); // Hello, Alice!매개변수와 인수
매개변수는 정의에 작성하는 변수 이름이고, 인수는 호출할 때 전달하는 실제 값입니다:
<?php
function add(int $a, int $b): int {
return $a + $b; // $a and $b are parameters
}
$sum = add(3, 4); // 3 and 4 are arguments
echo $sum; // 7반환값
호출한 쪽에 값을 돌려보내려면 return을 사용하십시오. return이 없는 함수는 NULL을 반환합니다:
<?php
function square(float $n): float {
return $n * $n;
}
function logMessage(string $msg): void {
echo '[LOG] ' . $msg . PHP_EOL;
// void functions must not return a value
}
echo square(4); // 16
logMessage('started'); // [LOG] started값에 의한 전달과 참조에 의한 전달
PHP는 기본적으로 인수를 값으로 전달합니다(복사본). 참조로 전달하려면 앞에 &를 붙이십시오:
<?php
function doubleByValue(int $n): void {
$n *= 2; // changes only the local copy
}
function doubleByRef(int &$n): void {
$n *= 2; // changes the original
}
$x = 5;
doubleByValue($x);
echo $x; // 5 — unchanged
doubleByRef($x);
echo $x; // 10 — changed여러 반환 지점
함수에는 조기 종료를 위한 return 문을 여러 개 작성할 수 있습니다:
<?php
function divide(float $a, float $b): ?float {
if ($b === 0.0) {
return null; // early return on error
}
return $a / $b;
}
var_dump(divide(10, 0)); // NULL
echo divide(10, 2); // 5함수 호이스팅
PHP 함수는 정의된 위치와 관계없이 파일 전체에서 사용할 수 있습니다. JavaScript와 달리 대부분의 PHP 함수는 사용하기 전에 선언할 필요가 없습니다:
<?php
echo double(5); // 10 — works even though double is defined below
function double(int $n): int {
return $n * 2;
}
// Exception: functions inside conditionals ARE position-sensitive재귀 함수
자기 자신을 호출하는 함수가 재귀 함수입니다. 무한 재귀를 피하려면 항상 종료 조건을 지정하십시오:
<?php
function factorial(int $n): int {
if ($n <= 1) return 1; // base case
return $n * factorial($n - 1); // recursive call
}
echo factorial(5); // 120타입 선언
PHP 7 이상에서는 매개변수와 반환 타입 힌트를 지원합니다. PHP 8에서는 mixed, never, 교집합 타입이 추가되었습니다:
<?php
declare(strict_types=1);
function clamp(int $value, int $min, int $max): int {
return max($min, min($max, $value));
}
echo clamp(150, 0, 100); // 100
echo clamp(-5, 0, 100); // 0
echo clamp(42, 0, 100); // 42명명 함수와 내장 함수 비교
PHP에는 수천 개의 내장 함수가 포함되어 있습니다. 실행 시점에 함수가 존재하는지 항상 확인할 수 있습니다:
<?php
if (function_exists('mb_strlen')) {
echo mb_strlen('こんにちは'); // 5 — correct multi-byte length
} else {
echo strlen('こんにちは'); // 15 — byte count, wrong for UTF-8
}여러 값 반환하기
배열을 반환한 다음 호출 위치에서 구조 분해하면 여러 값을 반환할 수 있습니다:
<?php
function minMax(array $arr): array {
return [min($arr), max($arr)];
}
[$min, $max] = minMax([3, 1, 7, 2, 9]);
echo "Min: $min, Max: $max"; // Min: 1, Max: 9빠른 확인
명시적인 return 문이 없는 PHP 함수는 무엇을 반환합니까?
복습: 함수
PHP 함수의 핵심 내용:
function name(params): returnType형식으로 정의합니다- 기본적으로 값으로 전달하고,
&를 사용하면 참조로 전달합니다 - return이 없는 함수는 NULL을 반환합니다
- 재귀에는 종료 조건이 필요합니다
- 함수는 파일 전체에서 사용할 수 있습니다(호이스팅)
다음 주제: 기본 매개변수와 가변 매개변수입니다.
자주 묻는 질문
“함수 정의와 호출” 강의는 무료인가요?
네 — “함수 정의와 호출” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 PHP Academy 강의 전체를 잠금 해제할 수 있습니다. PHP Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“함수 정의와 호출”에서 뭘 배우나요?
매개변수와 반환 값이 있는 함수를 직접 만듭니다. 브라우저에서 직접 실행하는 실습 코드로 PHP Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
PHP Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 PHP Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“함수 정의와 호출” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 PHP Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 PHP Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.