Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP에서 정적 메서드를 인수로 전달하는 방법

개요

PHP에서 정적 메서드(Static Method)를 다른 함수의 인수로 전달하려면 is_callablecall_user_func에서 사용되는 것과 동일한 문법을 그대로 활용하면 됩니다. 이는 함수나 메서드를 문자열 형태의 콜백으로 참조하는 PHP의 표준적인 방식으로, 런타임에 동적으로 함수를 호출해야 할 때 매우 유용합니다.

정적 메서드를 인수로 전달하는 기본적인 예제는 아래와 같습니다.

예제

<?php
    function my_func() {
        echo "Hello there!";
    }
    $variable_name = "my_func";
    var_dump(is_callable($variable_name, false, $callable_name));
    echo $callable_name, "\n";
    var_dump(is_callable($variable_name));
?>

코드 설명

  • my_func(): 간단한 인사말을 출력하는 사용자 정의 함수입니다.
  • $variable_name: 호출하고자 하는 함수 이름을 문자열 형태로 담고 있는 변수입니다.
  • is_callable(): 첫 번째 매개변수로 전달된 값이 실제로 호출 가능한지 검사합니다. 세 번째 매개변수($callable_name)를 함께 넘기면, 확인된 호출 가능한 이름이 해당 변수에 저장됩니다.

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과가 생성됩니다.

bool(true)
my_func
bool(true)

첫 번째 var_dump()$variable_name이 호출 가능한 구조인지 검사하여 true를 반환하고, 동시에 세 번째 매개변수로 전달된 $callable_name에 함수 이름인 "my_func"가 저장됩니다. 마지막 var_dump() 역시 해당 값이 유효한 호출 대상임을 확인하여 true를 반환합니다. 이처럼 is_callable을 활용하면 문자열로 전달된 함수나 정적 메서드가 안전하게 호출 가능한지 사전에 검증할 수 있습니다.