你可以在 php 中递归运行 require_once 吗?

Posted

技术标签:

【中文标题】你可以在 php 中递归运行 require_once 吗?【英文标题】:Can you run require_once recursively in php? 【发布时间】:2013-04-15 15:57:34 【问题描述】:

是否可以像这样在一行中递归运行require_once

<?php
require_once('./OAuth2/*');

或者您必须直接访问每个文件并require 吗?

【问题讨论】:

你最好使用自动加载器 您可以使用glob() 在数组中获取与该模式匹配的文件列表,foreach 在数组上并包含每个元素。但是您可能应该考虑使用autoloader 代替... 【参考方案1】:

不能那样做。像这样的东西会起作用:

foreach (glob("./OAuth2/*.php") as $filename)

    require_once($filename);

【讨论】:

+1 我一直在使用它,而且效果很好。我通常这样做,尽管foreach (glob("classes/*.php") as $filename) require_once($filename); 带有 .php 以确保我不包含目录中可能存在的任何其他随机文件(可能像 index.html 文件)【参考方案2】:

递归所有文件列表和require_once在一个目录中:

$files = array();

function require_once_dir($dir)

       global $files;

       $item = glob($dir);

       foreach ($item as $filename) 

             if(is_dir($filename)) 

                  require_once_dir($filename.'/'. "*");

             elseif(is_file($filename))

                  $files[] = $filename;
             
        


$recursive_path = "path/to/dir";

require_once_dir($recursive_path. "/*");

for($f = 0; $f < count($files); $f++)

     $file = $files[$f];

     require_once($file);

【讨论】:

以上是关于你可以在 php 中递归运行 require_once 吗?的主要内容,如果未能解决你的问题,请参考以下文章

几十万条数据用PHP递归能实现无限级分类吗

PHP - 递归数组到对象?

PHP:require_once 和继承

php数据库分页

数据库的图像输出

PHP使用谷歌应用smtp发送电子邮件[重复]