如果我将一个文件包含到另一个文件中。即 foo.php 包含类“foo”,有几个方法。php 在什么时候将类加载到内存中,在包含或类启动时。
这里:include ('foo.php');
或在这里:$foo = new foo();
例如:如果我要包含 50 个文件,这些文件都包含唯一的类,但只调用其中 1 个类,那么在内存使用方面会发生什么?速度?总体 - 请解释该行动的坏处。
当您include
创建一个文件时,PHP 所做的只是解析该文件,并且无论它是否包含类定义、过程行或完全注释掉的代码,都将includes
这些行放入您拥有的当前文件中,然后再将evaluates
它们放入。换句话说,如果这些行是可执行的,则查找语法错误 - 执行它们。如果您有 50 个全部“包含”的类文件,一旦包含过程完成,它就会变得类似于您有一个包含所有 50 个类的文件。实例化单个类或多个类的行为则变得相同。开销的唯一区别在于单独评估和包含这 50 个文件。
如果您确实有很多具有不同类的文件的用例,并且只需要根据您可能加载的文件来包含它们,请查看 PHP 中的自动加载功能:
<?php
function __autoload($class_name) {
include $class_name . '.php';
}
$first = new FirstClass();
$second = new SecondClass();
?>