> 백엔드 개발 > PHP 튜토리얼 > PHP回调函数到底是个啥

PHP回调函数到底是个啥

WBOY
풀어 주다: 2016-06-23 14:39:27
원래의
857명이 탐색했습니다.

百度了一下,很多关于回调都说是用函数指针回调,然后一步一步的讲,最后归结到了C语言了,无语!难道这个回调就这样难理解?
我的理解回调,关键是这个回,什么呢回呢?有些人理解这个回就是函数内部再调用一个函数,我认为不是这样,而是自己调用自己,就象数学逻辑中的循环证明一样,比如
条件…………求证:a=b;
有时我们会犯这样的求证错误:因为b=a,所以a=b,相信被个人都犯过类似的错误
  而回调函数我的理解类似这样,
     function fn($a){
           $b=m;
           $c=$b+fn($b);
           return;
}
也不知我的理解对吗?


回复讨论(解决方案)

你的理解是错误的!
自己调用自己 称之为“递归”,而不是回调

你也知道回调的关键是这个回
既然是回,那么就有一个谁是主体的问题,因为回调是往回调用的意思
我调用了函数A,而函数A在执行过程中调用了我提供的函数B,这个函数B就称为函数A的回调函数
显然主体是函数A

我们知道,函数是完成某个特定功能的代码集合,在函数执行的过程中,一般是不能去干预他的行为的
当函数被设计成带有回调功能时,我们就有可能在函数的执行过程中,通过回调函数去干预他。例如

function foo($n, $f='') {  if($n < 1) return;  for($i=0; $i<$n; $i++) {    echo $f ? $f($i) : $i;  }}//无回调时foo(5); //01234//有回调时function f1($v) {  return $v + $v;}foo(5, 'f1'); //02468
로그인 후 복사
로그인 후 복사

你的理解是错误的!
自己调用自己 称之为“递归”,而不是回调

你也知道回调的关键是这个回
既然是回,那么就有一个谁是主体的问题,因为回调是往回调用的意思
我调用了函数A,而函数A在执行过程中调用了我提供的函数B,这个函数B就称为函数A的回调函数
显然主体是函数A

我们知道,函数是完成某个特定功能的代码集合,在函数执行的过程中,一般是不能去干预他的行为的
当函数被设计成带有回调功能时,我们就有可能在函数的执行过程中,通过回调函数去干预他。例如

function foo($n, $f='') {  if($n < 1) return;  for($i=0; $i<$n; $i++) {    echo $f ? $f($i) : $i;  }}//无回调时foo(5); //01234//有回调时function f1($v) {  return $v + $v;}foo(5, 'f1'); //02468
로그인 후 복사
로그인 후 복사


请问版主 这里面的f1函数 为什么可以不传参数 就可以调用
还有这个函数对第一个函数有什么作用呢

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