Menu
Coddy logo textTech

Default Parameter Values

Coddy PHP 여정의 기초 섹션에 포함된 레슨 — 71개 중 64번째.

때때로 함수 매개변수에 인수가 제공되지 않을 때 대체 값이 필요할 수 있습니다. 기본 매개변수 값은 호출자가 지정하지 않을 경우 매개변수가 무엇이어야 하는지 정의할 수 있게 해줍니다.

기본 값을 설정하려면 함수 선언에서 = 연산자를 사용하여 직접 할당하세요:

<?php
function greet($name = "Guest") {
    echo "Hello, $name!\n";
}

greet("Alice");
greet();
?>

다음과 같이 출력됩니다:

Hello, Alice!
Hello, Guest!

greet("Alice")를 호출하면 인수가 기본값을 덮어씁니다. 인수를 전달하지 않고 greet()를 호출하면 PHP는 대신 "Guest"를 사용합니다.

필수 매개변수와 선택적 매개변수를 섞어 사용할 수 있지만, 기본값이 있는 매개변수는 필수 매개변수 뒤에 와야 합니다:

<?php
function createUser($name, $role = "member") {
    return "$name is a $role";
}

echo createUser("Alice") . "\n";
echo createUser("Bob", "admin");
?>

이것은 다음과 같이 출력됩니다:

Alice is a member
Bob is a admin

첫 번째 매개변수 $name은 필수이며, $role은 제공되지 않으면 "member"로 기본값이 설정됩니다. 이 패턴은 호출자가 항상 모든 인수를 제공할 필요 없이 함수를 더 유연하게 만듭니다.

challenge icon

챌린지

쉬움

두 줄의 입력을 읽으세요:

  1. 제품 이름 (예: Laptop)
  2. 수량 (예: 5) — 이 입력은 비어 있을 수 있습니다

formatOrder라는 함수를 생성하세요. 이 함수는 두 개의 매개변수를 받습니다: $product (필수)와 $quantity (선택적, 기본값은 1). 이 함수는 다음 형식의 문자열을 반환해야 합니다:

Order: [quantity]x [product]

수량 입력이 비어 있으면, 제품 이름만으로 함수를 호출하세요 (기본 수량 사용). 그렇지 않으면, 두 값 모두로 호출하세요.

반환된 결과를 출력하세요.

예제 1:

입력값이 Laptop5인 경우, 출력은 다음과 같아야 합니다:

Order: 5x Laptop

예제 2:

입력값이 Keyboard와 빈 줄인 경우, 출력은 다음과 같아야 합니다:

Order: 1x Keyboard

예제 3:

입력값이 Monitor3인 경우, 출력은 다음과 같아야 합니다:

Order: 3x Monitor

치트 시트

기본 매개변수 값은 인수가 제공되지 않을 때 함수 매개변수에 대한 대체 값을 정의할 수 있게 합니다.

기본 값을 설정하려면 함수 선언에서 =을 사용하여 할당합니다:

<?php
function greet($name = "Guest") {
    echo "Hello, $name!\n";
}

greet("Alice");  // Hello, Alice!
greet();         // Hello, Guest!
?>

필수 매개변수와 선택적 매개변수를 혼합할 때, 기본값이 있는 매개변수는 필수 매개변수 뒤에 와야 합니다:

<?php
function createUser($name, $role = "member") {
    return "$name is a $role";
}

echo createUser("Alice");           // Alice is a member
echo createUser("Bob", "admin");    // Bob is a admin
?>

직접 해보기

<?php
// 입력 읽기
$product = trim(fgets(STDIN));
$quantity = trim(fgets(STDIN));

// TODO: $product (필수)와 $quantity (선택적, 기본값 1)를 매개변수로 하는 formatOrder 함수를 생성하세요
// 함수는 "Order: [quantity]x [product]" 형식의 문자열을 반환해야 합니다


// TODO: quantity가 비어 있는지에 따라 함수를 적절히 호출하세요
// quantity가 비어 있으면 product만으로 호출하세요 (기본값 사용)
// 그렇지 않으면 product와 quantity 둘 다로 호출하세요


// 결과를 출력하세요
echo $result;
?>
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨