PHP&;回顾如何在不事先知道课程的情况下进行回顾
我想使用回顾来调用我不知道的类上的特定函数 我有一个存储PHP文件的目录。我的当前PHP类存储在另一个目录中,如下所示:PHP&;回顾如何在不事先知道课程的情况下进行回顾,php,reflection,Php,Reflection,我想使用回顾来调用我不知道的类上的特定函数 我有一个存储PHP文件的目录。我的当前PHP类存储在另一个目录中,如下所示: C:/ PHP-dir | ---FilesDir | | | ----SomeClass.php | ----OtherClass.php | ---MyProgDir | ----MyClassWithRetrospection
C:/ PHP-dir
|
---FilesDir
| |
| ----SomeClass.php
| ----OtherClass.php
|
---MyProgDir
|
----MyClassWithRetrospection.php
在MyClassWithRetrospection中,我从FilesDir中读取所有文件,从文件名中去掉“.php”,并将结果字符串用作类名
因此,如果我执行“new RetrospectionClass('SomeClass');”,我会得到一个异常,告诉我在MyClassWithRetrospection所在的目录中找不到某个类。
嗯,我知道
由于我不知道filedir中包含哪些类,因此无法在MyClassWithRetrospection.php文件中执行include/required
那么,有人知道如何在运行时使FilesDir目录的内容可用吗
问候,,
Werner您只需要在运行时包含它,这意味着您必须遵循命名文件的约定,或者您必须拥有每个文件所在位置的巨大数组。假设SomeClass.php包含一个名为SomeClass的类
新的回顾类($className)代码>
你会先做的
include_once'../FilesDir/'.$className..php'
“目录中的文件”和“类”是两个完全不同的东西。它失败不是因为它“在目录中找不到类”,而是因为包含类定义的文件未被include
d.deceze,您是对的。我应该解释一下,我的类定义是这样的:每个文件都用文件名(不包括“.php”)表示一个类。我不知道您可以在运行时这样做。我会试试看,然后告诉你。是的!这就是解决办法。谢谢你,戴夫。