我是 PHP 新手,例如,如果我有一个包含 2 个子文件的父文件:
include_once('includes/child1.php');
include_once('includes/child2.php');
Run Code Online (Sandbox Code Playgroud)
如果child2.php有一个带有函数test_function的Test类:
class Test
{
static function test_function() {
}
}
Run Code Online (Sandbox Code Playgroud)
那么我们可以像这样访问child1.php中的test_function吗?
public static function initialize() {
Test::test_function()
}
Run Code Online (Sandbox Code Playgroud)
如果可以,为什么它不会产生错误,因为child1.php包含在child2.php之前(注意:我是从 Javascript 角度来看的)
实际上没有调用 child1 或 child2 中的代码。您只是定义了一些类和函数,但没有任何内容调用这些函数中的任何一个。Test::test_function()永远不会被评估,因此它不会抛出任何错误。
总的来说:是的,顺序很重要。您尝试调用的所有内容都需要在调用之前定义。在这种情况下,您没有调用任何东西,因此它是无关紧要的。
每个文件都应该处理自己的依赖关系。即,child1.php 应该include(或者更好:require)child2.php 本身,如果它的代码依赖于它。不要将包含依赖项的负担归咎于 child1.php 的最终用户,这只会让事情变得极其复杂。
事实上,您应该使用自动加载,它会include根据需要及时加载所有必需的文件,而无需担心多个include语句的复杂性。