|
復制代碼 代碼如下:
<?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 動態執行帶有參數的類方法,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。