1

シナリオは次のとおりです。

メソッドの数が決まっていないクラスがあります。あるものはどこfunction actionNameで呼び出され、他のものはfunction filterNameどこ"filter"で呼び出され、"action"どのタイプのメソッドであるかを定義し、"Name"何でもかまいません。

__construct()はしたい:

$methods = get_class_methods($this);

foreach ( $methods as $method ) {

  if ( $method == 'action' )
    $this->DoSomething( $this->{$method}() );

  if ( $method == 'filter' )
    $this->DoSomethingElse( $this->{$method}() );

}

どのタイプの文字列または reg 式も使用せずにこれを達成するにはどうすればよいですか?

また、 の代わりに使用することにもオープンですget_class_methods()。しかし、メソッドがいくつ存在する"action"かは決してわからないことを覚えておいてください。"filter"

4

1 に答える 1

1
if (substr($method,0,6) == "action") { }

if (substr($method,0,6) == "filter") { }

キーワードの関数名の最初の 6 文字チェーンをチェックしているだけです。注意してください - キーワードが多すぎると、これのパフォーマンスが低下します。

于 2013-04-10T17:53:47.657 に答える