>백엔드 개발 >PHP 튜토리얼 >PHP 콜백 함수 사용법에 대한 자세한 설명

PHP 콜백 함수 사용법에 대한 자세한 설명

php中世界最好的语言
php中世界最好的语言원래의
2018-04-11 10:05:491939검색

이번에는 PHP의 콜백 함수 사용법에 대해 자세히 설명하고, PHP 콜백 함수 사용 시 주의사항은 무엇인지 살펴보겠습니다.

이 문서의 예제에서는 PHP 콜백 함수의 개념과 사용법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.

1. 콜백 함수의 개념

먼저 C 언어의 콜백 함수를 살펴보겠습니다. 콜백 함수는 함수 포인터를 통해 호출되는 함수입니다. 함수 포인터(주소)를 다른 함수에 매개변수로 전달하고 이 포인터가 가리키는 함수를 호출하는 데 사용되는 경우 이를 콜백 함수라고 합니다. 콜백 함수는 함수 구현자가 직접 호출하는 것이 아니라 특정 이벤트나 조건이 발생했을 때 상대방이 해당 이벤트나 조건에 대응하기 위해 호출하는 함수이다.

다른 언어의 콜백 함수 개념은 비슷하지만 다양한 언어의 콜백 함수 구현 메커니즘이 다릅니다. 일반적으로 콜백 함수는 우리가 정의하는 함수이지만 직접 호출하지는 않지만, 이를 통해 다른 함수를 호출하기 위해 이 함수는 해당 함수의 이름과 매개변수를 전달받아 콜백 함수를 호출합니다.

2. PHP에서 콜백 기능 구현

PHP는 콜백 함수를 지원하기 위해 두 가지 내장 함수를 제공합니다. 이 두 함수의 차이점은 call_user_func()call_user_func_array()call_user_func_array가 콜백 함수의 매개변수를 배열 형태로 받는다는 것입니다. 해당 프로토타입을 보면 알 수 있습니다: mixed call_user_func_array (callable $callback, array$param_arr). 매개변수가 2개뿐입니다. call_user_func($callback, 매개변수 1, 매개변수 2,...)의 매개변수 개수는 콜백 함수의 매개변수에 따라 결정됩니다. 스크립트에서

전역 함수

에 대한 콜백을 구현하는 방법, 클래스에서 $this를 사용하지 않는 비정적 메서드, 클래스에서 $this를 사용하는 비정적 메서드(객체에서 전달해야 함) 및 class. 다음은 코드를 통과한 테스트입니다. rreee 실행 결과:

<?php
//普通函数
function f1($arg1,$arg2)
{
  echo FUNCTION.&#39;exec,the args is:&#39;.$arg1.&#39; &#39;.$arg2;
  echo "<br/>";
}
//通过call_user_func调用函数f1
call_user_func('f1','han','wen');
  //通过call_user_func_array调用函数
call_user_func_array('f1',array('han','wen'));
class A
{
  public $name;
  function show($arg1)
  {
    echo 'the arg is:'.$arg1."<br/>";
    echo 'my name is:'.$this->name;
    echo "<br/>";
  }
  function show1($arg1,$arg2)
  {
    echo METHOD.' exec,the args is:'.$arg1.' '.$arg2."<br/>";
  }
  public static function show2($arg1,$arg2)
  {
    echo METHOD.' of class A exec, the args is:'.$arg1.' '.$arg2."<br/>";
  }
}
//调用类中非静态成员函数,该成员函数中有$this调用了对象中的成员
$a = new A;
$a->name = 'wen';
call_user_func_array(array($a,'show',),array('han!'));
//调用类中非静态成员函数,没有对象被创建,该成员函数中不能有$this
call_user_func_array(array('A','show1',),array('han!','wen'));
//调用类中静态成员函数
call_user_func_array(array('A','show2'),array('argument1','argument2'));

이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 자료:

PHP에서 file_put_contents 함수를 사용하는 방법


PHP가 phar 파일을 작동하는 방법


PHP가 가장 긴 공통 하위 문자열을 해결하는 방법


PHP 메소드에서 임의 생성 가능 숫자 ? 방법

위 내용은 PHP 콜백 함수 사용법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.