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