【问题标题】:Does the 'use' keyword trigger autoloading in PHP?'use' 关键字会触发 PHP 中的自动加载吗?
【发布时间】:2016-03-02 18:25:38
【问题描述】:

在下面的示例中,自动加载器在什么时候加载类文件(如果有的话)?例如,如果 $boolean_test === false 是否加载了子包?

use Org\Group\Package\Subpackage; // autoloader triggered here?
if ($boolean_test) {
    Subpackage::method(); // or here?
}

我更喜欢代码顶部附近的use 语句,这样我就可以看到页面中使用了哪些包并提高了可读性。但是,如果仅基于条件使用包,我可能会加载不需要的资源。

【问题讨论】:

  • 在您的 subpackage.php 中的一个简单回显将揭示答案
  • 虽然这是一个易于测试和回答的问题,但文档完全不清楚。

标签: php autoload


【解决方案1】:

use 不会触发自动加载。你可以在你的文件顶部有一个无效的use,PHP 不会抱怨。

当您尝试使用该类时会发生自动加载。

这很容易测试:https://3v4l.org/OccF3

【讨论】:

    猜你喜欢
    • 2018-10-07
    • 2023-02-21
    • 2014-12-27
    • 2013-10-14
    • 1970-01-01
    • 2013-09-02
    • 1970-01-01
    • 2016-04-20
    相关资源
    最近更新 更多