메서드가 콜백 메소드를 매개변수로 받아들여야 하는 경우 다음과 같이 작성할 수 있습니다.
<?php function dosth($callback){ call_user_func($callback); } function callback(){ echo 'do sth callback'; } dosth('callback'); ?>
출력:
do sth callback
하지만 콜백 메소드가 호출될 수 있는지 여부를 확신할 수 없기 때문에 콜백 메소드가 호출될 수 있는지 확인하기 위해 추가적인 작업을 많이 해야 합니다.
콜백 메서드가 호출 가능한지 확인하는 더 좋은 방법이 있나요?
callable을 사용하여 매개변수를 콜백 유형으로 강제 설정할 수 있으며, 이를 통해 콜백 메소드가 호출 가능해야 합니다.
예를 들어 콜백 메서드가 존재하지 않는 메서드입니다.
<?php function dosth(callable $callback){ call_user_func($callback); } dosth('abc'); ?>
실행 후 다음과 같은 오류 메시지가 표시됩니다. TypeError: Argument 1 failed to dosth( )은 호출 가능해야 합니다.
프로그램은 dosth의 내부 처리를 실행할 수 없습니다. 매개변수 유형을 확인하고 보호를 위해 처리했습니다.
콜러블이 제거되면
<?php function dosth($callback){ call_user_func($callback); } dosth('abc'); ?>
실행 후 경고가 표시됩니다. 경고: call_user_func()에서는 매개변수 1이 유효한 콜백이어야 하며 'abc' 함수를 찾을 수 없거나 함수 이름이 유효하지 않습니다
프로그램은 dosth의 내부 처리를 실행할 수 있으므로 콜백 메서드를 확인하려면 많은 추가 작업을 수행해야 합니다. 호출될 수 있습니다.
따라서 메소드의 매개변수가 콜백 메소드인 경우 callable을 추가하여 강제로 콜백 유형으로 지정해야 호출 오류를 줄이고 프로그램 품질을 향상시킬 수 있습니다.
위는 PHP Callable에서 콜백 유형을 강제로 지정하기 위해 에디터가 소개하는 방법입니다. 궁금한 점이 있으면 메시지를 남겨주세요. 시간 내에 답변해 드리겠습니다. 또한 PHP 중국어 웹사이트를 지원해 주신 모든 분들께 감사드립니다!
PHP Callable이 콜백 유형을 강제로 지정하는 방법에 대한 자세한 내용은 PHP 중국어 웹사이트를 참조하세요!