0Pricing
PHP Academy · 강의

함수 정의와 호출

매개변수와 반환 값이 있는 함수를 직접 만듭니다.

함수 정의와 호출은(는) 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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 함수 정의와 호출
  2. 기본 매개변수와 가변 매개변수
  3. 변수 범위: 지역과 전역
  4. 익명 함수와 클로저
← PHP Academy(으)로 돌아가기