每次在 PHP 中进行方法调用时,我都想调用一个函数。

例子 :

$a = new a();
$a->function1();

这将进行 2 个函数调用:basicFunction() 然后是 function1()
该类的任何后续方法调用也是如此。这在面向对象的 PHP 中可能吗?

最佳答案

最简单的方法就是调用该方法

public function function1 {
    $this->basicFunction();
    // …
}

您可能想要的是 Aspect Oriented Programming 之类的东西。但是,这在 PHP 中并不常见。最显着的用途是在 Flow3 framework 中。

对于可用于 PHP OOP 的其他更常见的方法,请查看
  • the Decorator pattern
  • the Subject/Observer pattern
  • Event Dispatcher pattern

  • 这些将允许您在运行时添加任意行为和控制流。

    (meta) 在旁注中,我们真的需要四个建议使用 __call 的答案吗?我建议不同的 OP 审查他们各自的答案,整理出细微的差异并就哪一个最好达成一致。其他三个人可以撤回他们的答案。

    关于PHP 类 : Call a specific function everytime a method call is made,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4426998/

    10-11 22:28
    查看更多