php 动态执行带有参数的类方法
作者:bea
官方手册给出了以下范例: 代码如下: <?php // 使用了NameSpace的例子 namespace Foobar; class Foo { static public function test() { print "Hello world!"; } } call_user_func(__NAMESPACE__ .'Foo::test'); // As of PHP 5.3.0 // Hello world! call_user_func
官方手册给出了以下范例:
代码如下:
<?php
// 使用了NameSpace的例子
namespace Foobar;
class Foo {
static public function test() {
print "Hello world!
";
}
}
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!
";
}
}
$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."
";
}
}
$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
// 使用了NameSpace的例子
namespace Foobar;
class Foo {
static public function test() {
print "Hello world!
";
}
}
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!
";
}
}
$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."
";
}
}
$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 memcache扩展的三种安装方法
- PHP mb_convert_encoding 获取字符串编码类型实现代码
- php mssql 分页SQL语句优化 持续影响
- 配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
- mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
- PHP 危险函数解释 分析
- php反弹shell实现代码
- 将数组写入txt文件 var_export
- php 保留小数点
- PHP 中执行排序与 MySQL 中排序
- 一个php导出oracle库的php代码
- php一句话cmdshell新型 (非一句话木马)
- 对squid中refresh_pattern的一些理解和建议
- PHP 加密与解密的斗争
- AspNetAjaxPager,Asp.Net通用无刷新Ajax分页控件,支持多样式多数据绑定
- php error_log 函数的使用
- PHP Document 代码注释规范
- php pcntl_fork和pcntl_fork 的用法
- sourcesafe管理phpproj文件的补充说明(downmoon)