如何包含()PHP 文件,只有这样的目录路径 "folder_1" 而不是 "folder_1/index.php"?

How to include() PHP file with just a directory path like this "folder_1" not "folder_1/index.php"?

我正在尝试 运行 index.php 文件 include("folder_1")

+-- folder_1
|   +-- index.php
|   +-- other_stuff.php

在上面提到的目录结构中。通常 运行 index.php 我们会写 include("folder_1/index.php")。 期待 运行 index.php 文件 include("folder_1") 类似于 import 在 React 中的工作方式。

谢谢:)

PHP 中没有“要包含的默认文件”的概念。但是,您可以轻松地创建一个辅助函数来完成此操作。 (有没有道理,我留给你决定。

function import(string $dir) {
    include $dir . 'index.php'; 
} 

请注意,如果您要导入的文件包含变量,它们将在函数范围内“丢失”。如果您的文件只定义 类、函数、常量等 scope-independent,这将工作正常。 (请参阅我关于使用辅助函数从文件导入变量的原始答案。)


编辑: 原来 OP 并没有询问是否包含多个文件。我的原始答案已移植到:How to include() all PHP files from a directory?.

这不是 include 方法的工作方式,为此您需要编写自定义方法,可以使用类似的方法

foreach(glob('includes/*.php') as $file) {
   include($file);
}

您只能扫描目录并包含每个文件。没有原生功能。

示例:

function include_dir($path) {
    
    $files = glob($path.'/*.php');
    
    if(count($files) > 0) {
        foreach($files as $file) {
            include $file;
        }
    }

}

include_dir("./app");