少し長くなりますので、ご容赦ください。:)
ええと、私たちはPHPのoverloading
概念を介してこれを達成できると思います。これは、ほとんどの人が知っているように、他のオブジェクト指向言語とはまったく異なります。
PHPマニュアルのオーバーロードページから- Overloading in PHP provides means to dynamically "create" properties and methods. These dynamic entities are processed via magic methods one can establish in a class for various action types.
(http://www.php.net/manual/en/language.oop5.overloading.php)
このオーバーロードマジックの多くは、PHPのマジックメソッドに依存しています
魔法のメソッドのリストが表示されている場合、ここで役立つのは__call()です。
マジックメソッド__callは、存在しないクラスメソッドが呼び出されるたびに呼び出されます。
これは、エラーのスローを防止したり、カスタムメッセージを設定したりするのに役立ちます。そこで、上記の問題を解決するために使用できる例を次に示します。
<?php
class Test
{
private $arr = array( 'funcone', 'functwo' );
public function __call( $func_name, $func_args ) {
echo "Method called: " . $func_name . "\n";
echo "Arguments passed: " . $func_args . "\n";
// this will call the desired function.
call_user_func( array( $this, $this->arr[ $func_args ] ) );
}
}
$obj = new Test;
// run the first function in the array
$obj->runTest(0);
?>
お役に立てば幸いです。これがうまくいかない場合は、少し試行錯誤して微調整できると確信しています。(今、私はPHPについて話しているのですよね?微調整...;))