例如,我有一个像这样的目录结构:
my_stuff
classes
one
two
more
evenmore
manymore
subsub
subsubsub
otherstuff
morestuff
deepstuff
toomuch
Run Code Online (Sandbox Code Playgroud)
我想在类包含路径的类下添加所有(!).我怎么会得到这样的阵列?有没有一些花哨的PHP功能?
使用SplIterators可以轻松地递归遍历目录.你这样做
$path = realpath('.');
$elements = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($path),
RecursiveIteratorIterator::SELF_FIRST);
foreach($elements as $element){
// element is an SplFileObject
if($element->isDir()) {
echo "$element\n"; // do whatever
}
}
Run Code Online (Sandbox Code Playgroud)
但是,不要将每个目录添加到包含路径.
如果将所有这些文件夹添加到包含路径,则会严重降低应用程序的速度.如果您的类在subsubsub中,PHP将首先搜索my_stuff,然后搜索类,然后搜索一个,然后搜索两个,依此类推.
而是让您的类名遵循PEAR约定并使用自动加载.
看到