PHP反射机制用法实例
程序员文章站
2022-06-30 09:22:23
本文实例讲述了php反射机制的用法,分享给大家供大家参考之用。具体方法如下:
演示示例代码如下所示:
本文实例讲述了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获取表单所有复选框的值的方法
下一篇: PS将黑章变成红章的简单方法介绍