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"로 기본값이 설정됩니다. 이 패턴은 호출자가 항상 모든 인수를 제공할 필요 없이 함수를 더 유연하게 만듭니다.
챌린지
쉬움두 줄의 입력을 읽으세요:
- 제품 이름 (예:
Laptop) - 수량 (예:
5) — 이 입력은 비어 있을 수 있습니다
formatOrder라는 함수를 생성하세요. 이 함수는 두 개의 매개변수를 받습니다: $product (필수)와 $quantity (선택적, 기본값은 1). 이 함수는 다음 형식의 문자열을 반환해야 합니다:
Order: [quantity]x [product]수량 입력이 비어 있으면, 제품 이름만으로 함수를 호출하세요 (기본 수량 사용). 그렇지 않으면, 두 값 모두로 호출하세요.
반환된 결과를 출력하세요.
예제 1:
입력값이 Laptop과 5인 경우, 출력은 다음과 같아야 합니다:
Order: 5x Laptop예제 2:
입력값이 Keyboard와 빈 줄인 경우, 출력은 다음과 같아야 합니다:
Order: 1x Keyboard예제 3:
입력값이 Monitor와 3인 경우, 출력은 다음과 같아야 합니다:
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;
?>이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators