公式マニュアルには次の例が記載されています:
コードをコピー コードは次のとおりです:
// NameSpace の使用例
namespace Foobar;
class Foo {
static public function test() {
print "Hello world!n"}
}
call_user_func( __NAMESPACE__ .'Foo::test'); // PHP 5.3.0 以降
// こんにちは!
call_user_func(array(__NAMESPACE__ .'Foo', 'test')); PHP 5.3.0 の
// Hello world!
?>
コードをコピーします コードは次のとおりです:
// ダイレクトメソッド呼び出しの例
class myclass {
static functionsay_hello()
{
echo "Hello!n ";
}
}
$classname = "myclass";
call_user_func(array($classname, 'say_hello'));
call_user_func($classname .'::say_hello') ; // 5.2.3 以降
?>
コードをコピーします コードは次のとおりです:
//パラメータを指定してクラスを実行する
class Loveapple{
public functionsayHello($a, $b){
echo "Hello:".$a .". " .$b."n";
}
}
$obj = new Loveapple();
// 実行結果 こんにちは、loveapple です。 >call_user_func(array ($obj, "sayHello"), "loveapple", "インスタンスを使用しています。");
//実行結果 Hello:loveapple.
call_user_func(array("Loveapple", "sayHello") , "loveapple", "クラス名を使用しています。");
?>