现有函数function A(){
  echo ‘hello world';
}
function B(){
}
function C(){
  ...
}其中函数A执行某些操作,函数B为空,请问如何编写函数C以将函数A绑定到函数B——即执行函数B就会执行函数A
可以理解为执行函数C后,函数B变成
function B(){
  A();
}

解决方案 »

  1.   

    create_function() 也许可以 不过怎么注销掉B()那个函数啊?
      

  2.   

    我描述下原本的需求吧:
    有基类class Base(){
      function f(){
      }
    }其中f()是一个空的函数,
    类A,B,C,D,...继承了Base,那么这些类自然都有自己f(),并且其中部分类重写了f();
    这些类又有很多实例,如
    A的实例有base['A'][0],base['A'][1],...
    B的实例有base['B'][0],base['B'][1],...
    ...
    现在,我想在执行函数test()时,通过遍历所有继承于Base的类的所有实例来执行它们的f(),但是当只有极少数类重写了f(),并且实例的总数很多时,就会耗费不必要的时间去执行很多空的f()。所以我想到了是否可以让这些非空的f()主动注册到test(),这样执行test()时就能做到只执行非空的f()了。不知道这样描述够不够清楚……如果有其他思路也欢迎分享,谢谢
      

  3.   

    你可以用ReflectionClass::getMethods来得到一个method是在base里定义的还是被重写了http://www.php.net/manual/en/reflectionclass.getmethods.php不过,真的不觉得值得这么做。。空函数也许还快点