"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > PHP에서 콜백을 어떻게 효과적으로 사용할 수 있나요?

PHP에서 콜백을 어떻게 효과적으로 사용할 수 있나요?

2024-11-09에 게시됨
검색:619

How Can I Use Callbacks Effectively in PHP?

PHP에서 콜백 구현

PHP에서 "콜백"이라는 용어는 함수 포인터로 작동하는 문자열과 배열을 모두 포함합니다. PHP 4에서는 다음 구문이 나타났습니다:

  • $cb1 = 'someGlobalFunction';
  • $cb2 = ['ClassName', 'someStaticMethod'];
  • $cb3 = [$객체, 'somePublicMethod'];

PHP 5.2.3에서는 호출 가능한 구문을 도입했지만 이러한 구문이 포함된 문자열은 직접 호출할 수 없습니다. PHP 4의 레거시 구문은 다음과 같습니다:

  • $cb3 = array(&$object, 'somePublicMethod');

다음 코드 조각은 호출 가능한 값의 안전한 사용을 보여줍니다. :

if (is_callable($cb2)) {
    $returnValue = call_user_func($cb2, $arg1, $arg2);
}

최신 PHP 버전은 위의 처음 세 가지 형식을 $cb()로 직접 호출하는 것을 지원합니다. 또한 call_user_func 및 call_user_func_array는 제시된 모든 형식을 지원합니다.

참고 및 주의 사항:

  • 네임스페이스 함수/클래스에는 정규화된 이름이 필요합니다. ['Vendor\Package\Foo', 'method'].
  • call_user_func는 참조로 비객체 전달을 지원하지 않습니다. call_user_func_array 또는 $cb()를 사용하세요. 이후 PHP 버전에서는.
  • __invoke() 메서드(익명 함수 포함)가 있는 객체는 콜백으로 사용될 수 있지만 일반적으로 전통적인 "콜백" 용어와 연결되지 않습니다.
  • 레거시 create_function ()는 전역 함수를 만들고 그 이름을 반환합니다. 대신 익명 함수를 사용하세요.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3