가변 함수
Coddy PHP 여정의 논리 & 흐름 섹션에 포함된 레슨. 68개 중 6번째.
Variable functions는 PHP에서 functions를 동적으로 호출하는 또 다른 방법을 제공합니다. call_user_func()를 using하는 대신, function 이름을 포함하는 variable을 function 자체인 것처럼 취급하여 function을 직접 호출할 수 있습니다.
syntax은 간단합니다. function name을 포함하는 variable이 있다면, variable에 괄호를 추가하여 해당 function을 호출할 수 있습니다:
<?php
function sayHello() {
echo "Hello World!";
}
$functionName = "sayHello";
$functionName(); // 출력: Hello World!
?>이는 매개변수를 받는 functions에도 적용됩니다. 괄호 안에 인수를 전달하기만 하면 됩니다:
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
$func = "greet";
$func("Alice"); // 출력: Hello, Alice!
?>Variable functions은 코드를 동적으로 실행할 수 있는 깔끔하고 직관적인 방법을 제공합니다. 이 기능은 조건이나 사용자 입력에 따라 서로 다른 함수를 호출해야 할 때 특히 유용하며, 코드를 더욱 유연하고 적응 가능하게 만들어 줍니다.
챌린지
쉬움three functions를 생성하세요: 두 숫자(length 및 width)를 받아 그 곱을 반환하는 calculateArea, 두 숫자를 받아 그 합의 두 배를 반환하는 calculatePerimeter, 두 숫자를 받아 제곱합의 제곱근을 반환하는 calculateDiagonal을 만드세요.
three inputs를 받습니다: operation 이름("area", "perimeter" 또는 "diagonal"), length, 그리고 width입니다. three inputs를 모두 읽고, function 이름을 variable에 저장한 다음, 두 측정값을 사용하여 variable function syntax로 해당 function을 호출하고 result를 출력하세요.
입력 형식: 세 줄 — 첫 번째 줄에는 operation 이름, 두 번째 줄에는 length(소수점을 포함할 수 있는 숫자), 세 번째 줄에는 width(소수점을 포함할 수 있는 숫자)가 있습니다.
예상 출력: 계산 결과
직접 해보기
<?php
// 입력 읽기
$operation = trim(fgets(STDIN));
$length = floatval(fgets(STDIN));
$width = floatval(fgets(STDIN));
// TODO: 여기에 세 함수를 작성하세요 (calculateArea, calculatePerimeter, calculateDiagonal)
// TODO: 가변 함수 구문을 사용하여 적절한 함수를 호출하고 결과를 저장하세요
// 결과 출력
echo $result;
?>이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리 & 흐름의 모든 레슨
직접 연습해 보세요: 온라인 PHP 컴파일러