php 动态执行带有参数的类方法


Posted in PHP onApril 10, 2009

官方手册给出了以下范例:

<?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! 
?>

<?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 
?>

那么,如果是普通的方法,而且,方法带有参数该怎么办?
以下是笔者写的一个小例子,供参考:
<?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", "sayHello"), "loveapple", "Using class name."); 
?>
PHP 相关文章推荐
PHP+MySQL5.0中文乱码解决方法
Nov 20 PHP
javascript 小型动画组件与实现代码
Jun 02 PHP
深入Apache与Nginx的优缺点比较详解
Jun 17 PHP
PHP中spl_autoload_register函数的用法总结
Nov 07 PHP
php实现保存submit内容之后禁止刷新
Mar 19 PHP
thinkphp中memcache的用法实例
Nov 29 PHP
PHP安全上传图片的方法
Mar 21 PHP
PHP扩展Memcache分布式部署方案
Dec 06 PHP
php 修改上传文件大小限制实例详解
Oct 23 PHP
thinkPHP中验证码的简单实现方法
Dec 05 PHP
php curl上传、下载、https登陆实现代码
Jul 23 PHP
PHP实现数据四舍五入的方法小结【4种方法】
Mar 27 PHP
PHP获取类中常量,属性,及方法列表的方法
Apr 09 #PHP
php 随机生成10位字符代码
Mar 26 #PHP
php SQL之where语句生成器
Mar 24 #PHP
php cookie 作用范围?不要在当前页面使用你的cookie
Mar 24 #PHP
php xml实例 留言本
Mar 20 #PHP
php xml文件操作实现代码(二)
Mar 20 #PHP
php xml文件操作代码(一)
Mar 20 #PHP
You might like
php中动态修改ini配置
2014/10/14 PHP
PHP判断是否连接上网络的方法
2015/07/01 PHP
php实现给一张图片加上水印效果
2016/01/02 PHP
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
解放web程序员的输入验证
2006/10/06 Javascript
利用js制作html table分页示例(js实现分页)
2014/04/25 Javascript
详解AngularJS中的表达式使用
2015/06/16 Javascript
分享五个有用的jquery小技巧
2015/10/08 Javascript
详解JavaScript节流函数中的Throttle
2016/07/16 Javascript
Bootstrap Table从零开始
2017/06/30 Javascript
vue使用$emit时,父组件无法监听到子组件的事件实例
2018/02/26 Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
2018/04/03 Javascript
关于vue-router的那些事儿
2018/05/23 Javascript
js实现简单选项卡功能
2020/03/23 Javascript
如何用JavaScript实现功能齐全的单链表详解
2019/02/11 Javascript
vue进入页面时滚动条始终在底部代码实例
2019/03/26 Javascript
Vue项目中使用jsonp抓取跨域数据的方法
2019/11/10 Javascript
vue data引入本地图片的两种方式小结
2019/11/13 Javascript
JavaScript JSON使用原理及注意事项
2020/07/30 Javascript
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
python实现SMTP邮件发送功能
2020/06/16 Python
Python读取视频的两种方法(imageio和cv2)
2018/04/15 Python
python代码 输入数字使其反向输出的方法
2018/12/22 Python
Django跨域请求原理及实现代码
2020/11/14 Python
Python基于execjs运行js过程解析
2020/11/27 Python
CSS3实现背景透明文字不透明的示例代码
2018/06/25 HTML / CSS
css3实现背景模糊的三种方式(小结)
2020/05/15 HTML / CSS
生产部厂长助理职位说明书
2014/03/03 职场文书
库房保管员岗位职责
2014/04/07 职场文书
村级环境卫生整治方案
2014/05/04 职场文书
重阳节演讲稿:尊敬帮助老人 弘扬传统美德
2014/09/25 职场文书
创业计划书之餐饮
2019/09/02 职场文书
Nginx的反向代理实例详解
2021/03/31 Servers
mysql优化之query_cache_limit参数说明
2021/07/01 MySQL
Java并发编程之原子性-Atomic的使用
2022/03/16 Java/Android
详解Go语言中配置文件使用与日志配置
2022/06/01 Golang