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