不修改A函数定,如何让一个A函数自动执行B或其它函数~
A+=B;
A();
A-=B;
A+=C;
A();不知道PHP可有实现这功能的办法?

解决方案 »

  1.   

    不修改A函数定,如何让一个A函数自动执行B或其它函数~
    A+=B;  //B附加到A
    A();  //此时A执行时,会同时自动执行B
    A-=B; //取消附加
    A+=C; //同上上上
    A();  //此时A执行时,会同时自动执行CPHP可有实现此功能的方法?
      

  2.   


    啊,不会吧?
    就是像C#那样,把B函数句柄赋给A函数,然后当A函数执行时,也会自动执行B函数
    这样明白点了吧?
      

  3.   

    本帖最后由 xuzuning 于 2010-11-15 10:16:23 编辑
      

  4.   


    function a(){echo "this is a";}
    function b(){echo "this is b";}在function a(){echo "this is a";}不修改的情况下,可否让a()执行时,可否输出:
    this is athis is b
      

  5.   

    这样和直接执行有什么区别么?
    A();B();//执行完A再B
    A();C();//执行完A再C
    感觉就跟这个一样效果,有什么特别需要吗?
      

  6.   

    程序运行当中,我要根据外部条件,动态为A函数增加功能...不过我找到法子了,A是要改动一下,利用变量作业函数名,在A里加一行调用此变量名函数就行了
      

  7.   


    class test{
    public $a="this is a";
    public $b="this is b";
    public function a()
    {
    return $this->a;
    }
    public function b($i)
    {
    return $this->a=$this->$i.$this->b;
    }
    }$db=new test();
    echo "<span style='color:#red;'>this is a:</span>".$db->a();
    echo "<br/>";
    echo "<span style='color:#red;'>this is b:</span>".$db->b(0);
    echo "<br/>";
    echo "<span style='color:#red;'>this is a+b:</span>".$db->b("a");
    echo "<br/>";
    $db=new test();
    echo "<span style='color:#red;'>this is a-b:</span>".$db->a();
    echo "<br/>";
    echo "<span style='color:#red;'>this is b:</span>".$db->b(0);
    //这样是不是你要的要求
      

  8.   

    PHP不能与C#比,PHP没有那么多特性,它只是有OOP中最基本的,而且命名空间的概念在新版才有。PHP很好学,因为它太简单,你只可以在有限的功能上实现无限的架构。比如CMS BBS SNS系统,PHP如此少特性,但那个开源项目比.NET的要差?
      

  9.   

    你是想实现c#的事件吧
    http://blog.aisoyo.com/2009/03/php-%E2%80%9C%E4%BA%8B%E4%BB%B6%E7%9B%91%E5%90%AC%E2%80%9D-_/
      

  10.   

    根据变量,在A中来个条件语句if else,或者switch决定加载哪个函数
      

  11.   

    他的意思是 调用A的时候 捆绑加载B 而又可以动态的在不改动源码的情况下 解除这种函数的捆绑 而改变的只是调用的代码 
    //伪代码
    function A($flag)(
       if($flag) return $this->B();
       return $this->C();
    )
    跟你想到的一样 总之不可能不修改B 又不是Perl 记得把帖子结了
      

  12.   

    感觉 LZ 是想做 AOP 框架之类的东西……可以研究研究 runkit,我觉得 runkit_function_rename / runkit_function_add 有可能用来实现这类功能。
    ————————————————————————————————
    基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)[/size]