手机
当前位置:查字典教程网 >编程开发 >php教程 >PHP反射机制用法实例
PHP反射机制用法实例
摘要:本文实例讲述了PHP反射机制的用法,分享给大家供大家参考之用。具体方法如下:演示示例代码如下所示:target[]=newClassOne(...

本文实例讲述了PHP反射机制的用法,分享给大家供大家参考之用。具体方法如下:

演示示例代码如下所示:

<?php class ClassOne { function callClassOne() { print "In Class One"; } } class ClassOneDelegator { private $targets; function __construct() { $this->target[] = new ClassOne(); } function __call($name, $args) { foreach ($this->target as $obj) { $r = new ReflectionClass($obj); if ($method = $r->getMethod($name)) { if ($method->isPublic() && !$method->isAbstract()) { return $method->invoke($obj, $args); } } } } } $obj = new ClassOneDelegator(); $obj->callClassOne(); ?>

输出结果:

In Class One

可见,通过代理类ClassOneDelegator来代替ClassOne类来实现他的方法。

同样的,如下的代码也是能够运行的:

<?php class ClassOne { function callClassOne() { print "In Class One"; } } class ClassOneDelegator { private $targets; function addObject($obj) { $this->target[] = $obj; } function __call($name, $args) { foreach ($this->target as $obj) { $r = new ReflectionClass($obj); if ($method = $r->getMethod($name)) { if ($method->isPublic() && !$method->isAbstract()) { return $method->invoke($obj, $args); } } } } } $obj = new ClassOneDelegator(); $obj->addObject(new ClassOne()); $obj->callClassOne(); ?>

希望本文所述对大家的PHP程序设计有所帮助。

【PHP反射机制用法实例】相关文章:

PHP CURL 多线程操作代码实例

php中smarty模板条件判断用法实例

PHP curl使用实例

PHP滚动日志的代码实现

PHP 反射(Reflection)使用实例

PHP嵌套输出缓冲代码实例

PHP、Java des加密解密实例

PHP SplObjectStorage使用实例

PHP文件读取功能的应用实例

用PHP发电子邮件

精品推荐
分类导航