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

php中世界最好的语言
풀어 주다: 2023-03-22 07:20:02
원래의
1647명이 탐색했습니다.

이번에는 PHP 콜백 함수익명 함수에 대한 자세한 설명을 들고 왔고, PHP 콜백 함수와 익명 함수 사용 시 주의사항은 무엇인가요? 다음은 실제 사례입니다. 바라보다.

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

1. 콜백 함수

PHP의 콜백 함수는 실제로 C, Java 및 기타 언어의 콜백 함수와 동일한 기능을 가지고 있으며 모두

콜백 함수가 실행된 후 메인 스레드로 돌아가서 다음 프로세스를 처리합니다.

PHP에서 콜백 함수를 호출할 때, 원하지 않는 일이 발생합니다. C, Java와 같이 함수 이름을 함수 매개변수로 직접 사용하는 대신 php

1.1, 매개변수 없는 콜백

<?php
//无参数回调
function callback(){
  echo &#39;execute no parameters callback.<br/>';
}
function main($callback){
  echo 'execute main start.<br/>';
  $callback();
  echo 'execute main end.<br/>';
}
main('callback');
//结果
ecute main start.
execute no parameters callback.
execute main end.
로그인 후 복사

1.2, 전역 콜백 함수

<?php
//全局函数回调
function callback($a,$b){
  echo "$a<====>$b.<br/>";
}
$func = 'callback';
call_user_func($func, 1,2);
call_user_func_array($func, array(1,2));
//结果
1<====>2.
1<====>2.
로그인 후 복사

1.3, 클래스 메소드 및 정적 메소드 콜백

<?php
class Test{
  //成员函数
  function callback($a,$b){
    echo "callback $a<====>$b.<br/>";
  }
  public static function staticCallback($a,$b){
    echo "staticCallback $a<====>$b.<br/>";
  }
}
//非静态方法调用方式一
$test = new Test();
call_user_func(array($test, 'callback'), 1,2);
call_user_func_array(array($test, 'callback'), array(1,2));
//非静态方法调用方式二
$func = 'callback';
$test->$func(7,9);
//静态方法调用方式
call_user_func(array('Test', 'staticCallback'), 4,6);
call_user_func_array(array('Test', 'staticCallback'), array(4,6));
call_user_func_array("Test::staticCallback", array(4,6));
//结果
callback 1<====>2.
callback 1<====>2.
callback 7<====>9.
staticCallback 4<====>6.
staticCallback 4<====>6.
staticCallback 4<====>6.
로그인 후 복사

2, 익명 함수

2.1 클로저라고도 불리는 PHP의 익명 함수를 사용하면 이름 없이 함수를 지정할 수 있습니다. 가장 일반적으로 사용되는 것은 콜백 함수의 매개변수

<?php
$closureFunc = function($str){
  echo $str.'<br/>';
};
$closureFunc("hello world!");
//结果
hello world!
로그인 후 복사

2.2, 클로저

2.2.1, 매개변수 전달, 지역 변수 참조

<?php
$closureFunc = function($name){
  $sex = '男';
  $func = function($age)use ($name,$sex){
    echo "$name--$sex--$age<br/>";
  };
  $func(23);
};
$func = $closureFunc("lvfk");
//结果
lvfk--男--23
로그인 후 복사

2.2.2, 클로저 함수 반환

<?php
$closureFunc = function($name){
  echo 'closureFunc ';
  $sex = '男';
  echo "$name+++$sex<br/>";
  $func = function()use ($name,$sex){
    echo "$name--$sex<br/>";
  };
  return $func;
};
$func = $closureFunc("lvfk");
$func();
$func();
//结果
closureFunc lvfk+++男
lvfk--男
lvfk--男
로그인 후 복사

2.2입니다. 3, 종결 컨텍스트 값을 변경하려면 pass by reference

<?php
$closureFunc = function($name){
  $age = 1;
  echo "$name+++$age<br/>";
  $func = function()use ($name,&$age){
    $age++;
    echo "$name--$age<br/>";
  };
  return $func;
};
$func = $closureFunc("lvfk");
$func();
$func();
$func();
//结果
lvfk+++1
lvfk--2
lvfk--3
lvfk--4
로그인 후 복사

가 필요합니다. 이 기사의 사례를 읽은 후 방법을 마스터했다고 생각합니다. 더 흥미로운 정보를 보려면 관련 기사를 참조하세요. PHP 중국어 웹사이트!

추천 도서:

PHP는 포스터 광고 생성을 직접 구현합니다

PHP는 WeChat 또는 브라우저가 열릴지 여부를 결정합니다

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿