首頁 > php教程 > php手册 > 主體

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

PHPz
發布: 2018-09-30 17:08:48
轉載
1088 人瀏覽過

PHP中,在事先知道类和类的方法名称,使用call_user_func函数可以做动态执行。

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

代码如下:

<?php 
// 使用了NameSpace的例子 
namespace Foobar; 
class Foo { 
static public function test() { 
print "Hello world!\n"; 
} 
} 
call_user_func(__NAMESPACE__ .&#39;\Foo::test&#39;); // As of PHP 5.3.0 
// Hello world! 
call_user_func(array(__NAMESPACE__ .&#39;\Foo&#39;, &#39;test&#39;)); // 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, &#39;say_hello&#39;)); 
call_user_func($classname .&#39;::say_hello&#39;); // 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
來源:jb51.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!