2012-01-19 17 views
0

関数が変数に格納されているクラスのPHP関数にアクセスするには?例えばクラスのPHP関数へのアクセス

$functionname = "say_hello"; 
$obj = new Class(); 
$obj -> $functionname(); 
+2

それを呼び出す__get関数を記述します。 http://codepad.viper-7.com/ttfLas – deceze

+0

[私はメソッドを呼び出すために変数を使用できますか?](http://stackoverflow.com/questions/4276231/) – outis

答えて

1

上記参照リンク上の完全な説明をそれが存在し、callabの場合は変数チェックルその後、

if (method_exists($product, $method)) { 
print $product->$method(); // invoke the method 
} 

それは

if (is_callable(array($product, $method))) { 
print $product->$method(); // invoke the method 
} 
+0

返信ありがとう: 私のプログラムの流れはif節に入りますが、それでも私は得られません返された値(ここではprint $ product - > $ method() ですが、まだ関数の値は得られません) – Aniruddhsinh

1

callback

クイックサンプルを使用:関数名はに格納されている場合array($obj, $functionname)

call_user_func(array($obj, $functionname), your parameters); 

+0

返信ありがとう: 私は関数の値(ここでは$ functionnameの値)を得られません。 – Aniruddhsinh

+0

あなたの関数が何かを返すなら、 '$ result = call_user_func(array($ obj、$ functionname));' – Eineki

0
private function __get($name) { 
$method = 'get'.$name; 
return $this->$method(); 
} 

呼び出し可能であるかどうかを確認のようなメソッド名を構築し、まさにそのように、はい