0

関数ハンドラ用のphpに何かありますか? PHPで関数を呼び出す場合と同様です。関数ハンドラが自動的に呼び出されます。

function add($i ,$j){
    $k = $i+$j;
    return $k;
}

したがって、誰かが上記の関数を呼び出すと、関数ハンドラが自動的に実行されます。他の関数セッション save_handler、または PHP の error_handler があるように。

4

1 に答える 1

1

いいえ、ありません。代わりに委任を使用する必要があります

function otherFunction ($i, $k) {
  foobar();
  return add($i, $j);
}

オブジェクト指向の設計により、オブジェクト全体をラップすることもできます

class A {
  public function add($i, $j) { return $i + $j; }
}
class B extends A {
  public function add($i, $j) { $this->foobar(); return parent::add($i, $j);
  protected foobar() { /* do something useful */ }
}
// or
class C extends A {
  protected $_inner;
  public function __construct (A $inner) { $this->_inner = $inner; 0
  public function add($i, $j) { $this->foobar(); return $this->_inner->add($i, $j); }
  protected foobar() { /* do something useful */ }
}

または、次のような無名関数

$add = function ($i, $j) {
  foobar();
  return add($i, $j);
};
$add(3, 7);
于 2012-08-23T10:23:57.523 に答える