>  기사  >  백엔드 개발  >  PHP 함수 콜백 함수 (1) 변수 함수 정의, 선언 및 적용

PHP 함수 콜백 함수 (1) 변수 함수 정의, 선언 및 적용

伊谢尔伦
伊谢尔伦원래의
2017-05-12 11:33:003370검색

일명 콜백 함수는 함수를 호출할 때 표준 변수를 매개변수로 전달하지 않고, 호출된 함수에 다른 함수를 매개변수로 전달한다는 뜻이다. . 콜백 유형의 매개변수가 함수의 형식 설명에 나타나면 해당 함수는 콜백 함수입니다. 이전 섹션에서는 PHP 변수 매개변수 함수에 대해 소개했습니다. 이번 섹션에서는 PHP 콜백 함수에 대해 알아봅니다.

콜백 함수의 형식 설명은 다음과 같습니다.

mixed funName (callback arg)   //在参数列表中使用伪类型 callback 描述

콜백도 PHP의 의사 유형 유형으로, 함수의 매개변수가 다른 함수를 함수로 허용해야 함을 나타냅니다. 실제 매개변수. 매우 중요한 질문은 왜 함수를 매개변수로 사용하는가입니다. 이전에 소개한 것처럼 호출 함수의 실행 동작은 매개 변수를 전달하여 변경할 수 있지만 때로는 함수에 값만 전달하는 기능이 여전히 제한되는 경우가 있습니다. 사용자가 정의한 실행 프로세스를 함수에 전달하여 사용할 수 있다면 사용자의 함수 기능 확장이 크게 늘어납니다. 콜백 함수를 어떻게 선언하고 사용하느냐도 중요한 문제입니다. 콜백 함수를 선언해야 한다면 먼저 변수 함수를 이해해야 합니다.

가변함수

가변함수를 변수함수라고도 합니다. 변수 이름 뒤에 괄호가 오면 PHP는 변수 값과 동일한 이름을 가진 함수를 찾아 실행을 시도합니다. 예를 들어 test() 함수를 선언하고 함수 이름 string test를 $demo 변수에 할당합니다. $demo 변수를 직접 인쇄하는 경우 출력 값은 test 문자열이어야 하지만 $demo 변수 뒤에 괄호 $demo()를 추가하면 $demo 변수 값 test에 해당하는 함수가 호출됩니다. 이런 방식으로 동일한 변수에 서로 다른 함수 이름을 부여한 후 해당 변수를 통해 함수를 호출할 수 있는데, 이는 객체지향에서 다형성 기능을 적용하는 것과 유사하다.

예제 코드는 다음과 같습니다.

<?php
 function one($a,$b){
   return $a + $b;
 }
 function two($a,$b){
   return $a*$b;
 }
 function three($a,$b){
   return $a/$b;
 }
 $result = "one";          //将函数名one赋值给变量$result,执行$result()时则调用函数one()
 //$result = "two";        //将函数名two赋值给变量$result,执行$result()时则调用函数two()
 //$result = "three";      //将函数名three赋值给变量$result,执行$result()时则调用函数three()
 echo "结果是:".$result(4,6);   //变量$result接收到哪个函数名的值,就调用哪个函数
?>

위의 예에서는 세 개의 함수 one(), two(), three()가 선언되어 있으며, Used to를 사용합니다. 두 숫자의 합, 곱, 몫을 계산합니다. 그리고 세 함수의 함수 이름(괄호 없이)을 $result 변수에 문자열로 할당한 다음 변수 이름 $result 뒤에 괄호를 사용하고 두 개의 정수 매개변수를 전달하면 다음과 같은 함수 실행을 찾습니다. $result 변수의 값과 이름이 같습니다. 대부분의 함수는 함수 이름을 변수에 할당하여 변수 함수를 형성할 수 있습니다. 그러나 변수 함수는 언어 구성에 사용할 수 없습니다.

변수 함수를 사용하여 콜백 함수 선언 및 적용

콜백 가능한 함수를 맞춤 설정하려면 달성하는 데 도움이 되는 가변 기능을 사용하도록 선택할 수 있습니다. 콜백 함수를 정의할 때 선언된 매개변수가 일반 변수인 한 함수의 선언 구조는 변경되지 않습니다. 하지만 이 매개변수 변수를 함수 내에서 사용할 경우 괄호를 추가하면 매개변수 값과 동일한 이름의 함수를 호출할 수 있으므로 전달되는 매개변수는 다른 함수의 이름 문자열이어야 합니다. 콜백 함수를 사용하는 목적은 내부에서 사용할 수 있도록 자체 정의된 함수를 함수에 전달하는 것입니다.

코드 예시는 다음과 같습니다.

<?php
 //声明回调函数filter, 在0-10的整数中通过自定义条件过滤不要的数字
 function filter($fun){
   for($i=0; $i<=10; $i++){
     //将参数变量$fun加上一个圆括号$fun(),则为调用和变量$fun值同名的函数
     if($fun($i))
       continue;
       echo $i.&#39;<br>&#39;;
   }
 }
 //声明一个函数one,如果参数是3的倍数就返回ture,否则返回false
 function one($num){
   return $num%3 == 0;
 }
 //声明一个函数two,如果参数是一个回文数返回ture,否则返回false
 function two($num){
   return $num == strrev($num);
 }
 filter("one");   //打印出10以内非3的倍数,参数one是函数one()的名称字符串,是一个回调
 echo "---------------------<br>";
 filter("two");   //打印出10以内非回文数,参数two是函数two()的名称字符串,是一个回调
?>

실행 결과는

PHP 함수 콜백 함수 (1) 변수 함수 정의, 선언 및 적용

위에서 예를 들어 선언된 함수 filter()가 일반 값만 매개 변수로 허용하는 경우 사용자가 필터링할 수 있는 숫자는 상대적으로 단일합니다. 이 예에서는 정의된 함수 filter()에서 필터 조건으로 전달된 세금 포함 값이 호출됩니다. 이러한 방식으로 함수는 원하지 않는 숫자를 필터링할 수 있습니다. 필터() 함수. 함수 filter() 내부의 매개변수 변수 $fun에 괄호 $fun()을 추가하면 $fun 변수와 동일한 값을 필터링 조건으로 하는 함수를 호출할 수 있습니다. 예를 들어, 이 예제에서는 filter()를 호출할 때 함수 이름 one과 two가 문자열인 한 각각 10 내에서 3의 배수와 회문을 필터링하는 데 사용되는 두 개의 함수 one()과 two()가 선언됩니다. 매개변수에 전달됩니다. 즉, 이 두 함수는 내부 사용을 위해 filter() 함수에 전달됩니다.

이 장에서는 php 콜백 함수의 변수 함수 정의, 선언, 적용에 대해 설명합니다. 다음 장에서는 php 콜백 함수의 call_user_func_array() 함수와 사용법을 소개하겠습니다.

【관련 튜토리얼 추천】

1. "php.cn Dugu Jiujian (4) - PHP 비디오 튜토리얼 "

2. PHP 프로그래밍 입문부터 마스터링까지 전체 동영상 튜토리얼

3.

PHP 실용 동영상 튜토리얼

위 내용은 PHP 함수 콜백 함수 (1) 변수 함수 정의, 선언 및 적용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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