官方手册给出了以下范例: <div class="codetitle"><a style="CURSOR: pointer" data="54696" class="copybut" id="copybut54696" onclick="doCopy('code54696')"> 代码如下:<div class="codebody" id="code54696"> <?php // 使用了NameSpace的例子 namespace Foobar; class Foo { static public function test() { print "Hello world!n"; } } call_user_func(NAMESPACE .'Foo::test'); // As of PHP 5.3.0 // Hello world! call_user_func(array(NAMESPACE .'Foo','test')); // As of PHP 5.3.0 // Hello world! ?>
<div class="codetitle"><a style="CURSOR: pointer" data="46410" class="copybut" id="copybut46410" onclick="doCopy('code46410')"> 代码如下:<div class="codebody" id="code46410"> <?php // 直接调用方法的例子 class myclass { static function say_hello() { echo "Hello!n"; } } $classname = "myclass"; call_user_func(array($classname,'say_hello')); call_user_func($classname .'::say_hello'); // As of 5.2.3 ?>
那么,如果是普通的方法,而且,方法带有参数该怎么办? 以下是笔者写的一个小例子,供参考: <div class="codetitle"><a style="CURSOR: pointer" data="24384" class="copybut" id="copybut24384" onclick="doCopy('code24384')"> 代码如下:<div class="codebody" id="code24384"> <?php // 执行带有参数的类 class Loveapple{ public function sayHello($a,$b){ echo "Hello:".$a.". ".$b."n"; } } $obj = new Loveapple(); //执行结果 Hello:loveapple. Using instance. call_user_func(array($obj,"sayHello"),"loveapple","Using instance."); //执行结果 Hello:loveapple. Using class name. call_user_func(array("Loveapple","Using class name."); ?>
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|