1

http://net.tutsplus.com/tutorials/php/reflection-in-php/

// Nettuts.php

class Nettuts {

   function publishNextArticle($editor) {
      $editor->setNextArticle('135523');
      $editor->publish(); // first call to publish()

      $reflector = new ReflectionClass($editor);
      $publishMethod = $reflector->getMethod('publish');
      $publishMethod->invoke($editor); // second call to publish()
   }

}

我无法理解这两个电话之间有什么区别

$publishMethod->invoke($editor);

$editor->publish(); // first call to publish()

我的意思是如果我们已经是$editor那么为什么要通过反射类调用方法

4

2 回答 2

0

有两种方法:直接调用方法和使用反射调用方法。

于 2013-11-18T05:57:25.300 回答
0

有时您需要将函数名称作为“字符串”转换为真正的可调用函数。

例如,对于一些验证框架,您需要配置一些规则。例如

addRule("notEmpty") 

“notEmpty”将是一个方法名称(作为字符串),您可以通过反射调用真正的方法。

于 2013-11-18T06:47:05.477 回答