Heim >Backend-Entwicklung >PHP-Tutorial >PHP回调函数到底是个啥

PHP回调函数到底是个啥

WBOY
WBOYOriginal
2016-06-23 14:39:27858Durchsuche

百度了一下,很多关于回调都说是用函数指针回调,然后一步一步的讲,最后归结到了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函数 为什么可以不传参数 就可以调用
还有这个函数对第一个函数有什么作用呢

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn