ホームページ  >  記事  >  php教程  >  PHPはパラメータを指定してクラスメソッドを動的に実行します

PHPはパラメータを指定してクラスメソッドを動的に実行します

WBOY
WBOYオリジナル
2016-06-13 12:24:22965ブラウズ

公式マニュアルには次の例が記載されています:

コードをコピー コードは次のとおりです:


// 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", "クラス名を使用しています。");
?>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。