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

yipeiwu_com6年前PHP代码库
官方手册给出了以下范例:
复制代码 代码如下:

<?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.");
?>

相关文章

将数组写入txt文件 var_export

$fp = fopen('aa.txt','w+'); fwrite($fp,var_export($times,true)); fclose($fp);...

用PHP将Unicode 转化为UTF-8的实现方法(推荐)

实例如下: function unescape($str) { $str = rawurldecode($str); preg_match_all("/(?:%u.{...

PHP6 先修班 JSON实例代码

它是基於JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個子集 JSON...

PHP使用strrev翻转中文乱码问题的解决方法

本文实例讲述了PHP使用strrev翻转中文乱码问题的解决方法。分享给大家供大家参考,具体如下: 在用PHP中的strrve翻转中文时,会出现乱码情况 例如: header("Con...

phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别

phpinfo() 的很多部分有两个Column:Local Value和Master Value 1. Master Value是PHP.ini文件中的内容。 2.Local valu...