クラスとメソッドの動的使用
PHPでは大胆な事ができます。
インスタンスメソッドを呼ぶ
PHP:
-
class ClassA {
-
function method() {
-
print 'method';
-
}
-
}
-
-
// 大文字小文字は区別しない
-
$className = 'classa';
-
$methodName = 'method';
-
$obj = new $className();// new ClassA();
-
$obj->$methodName();// $obj->method();
staticメソッドを呼ぶ
インスタンスメソッドと若干異なります。
PHP:
-
class ClassA {
-
function method() {
-
print 'method';
-
}
-
}
-
-
// 大文字小文字は区別しない
-
$className = 'classa';
-
$methodName = 'method';
-
$className::$methodName();// parse error
まとめ
いずれも非常に便利です。
クラス名や関数名を文字列で登録しておくだけで実行できます。
GDのバージョンによって、画像処理関数を切り替えたい時にも使えます。
又、登録モード、削除モード、検索モードなど、モード毎に1つの関数を呼ぶ便利な使い方もできます。わざわざ、if(登録モードなら)なんて分岐せずに済みますね。