我有一个文件列表,其中一个文件将另一个文件包含在同一目录中。我想要包含目录的所有文件,如何按继承顺序执行,以便我不会出现任何错误
答案 0 :(得分:1)
您可以使用spl_autoload_register()
自动加载,而不是自己计算依赖项。
这样,您的依赖项就会根据需要得到解决。有点像“Just-In-Time”加载:)
答案 1 :(得分:0)
如果您的文件对其他文件有某些依赖性,请确保首先包含“父”文件。
例如,文件A.php中有一个A类:
<?php
class A {
// .. statements
}
你有一个B类扩展名为B.php:
<?php
require_once( "A.php" );
class B extends A {
// .. statements
}
这个想法是在使用该文件中的任何函数/ classes /语句之前首先“包含”/“需要”所需的文件。在PHP 5中,您可以使用自动加载函数来“自动”添加/包含您需要的文件,而无需不断地输入require函数。
答案 2 :(得分:0)
你 COULD 使用解析器来寻求依赖,但这将是一项非常多的工作和真正的性能杀手。
您可以对文件进行排序,并在其前面添加数字
001.init.php
002.db_connect.php
003.pre_filters.php
但是如果你手动对它们进行排序,那么依赖文件名是非常有必要的。
如果您有类继承,则可以组合自动加载器并需要一次。 注册一个自定义自动加载器以使用require_once需要文件,并包含所有带循环的文件。如果您需要第4个文件中第8个文件的类,自动加载器将提前加载第8个文件,当您的inlude循环到达第8个文件时,不会发生任何事情,因为require_once将不再包含该文件。
但是你可能已经意识到: 在文件系统中包含以随机顺序相互依赖的文件 NOT 是一个好的理念。