如何包含/需要使用操作语句?

问题描述:

我动态生成我的使用语句,并尝试包含它们。如何包含/需要使用操作语句?

use.php(路径:/App/Test/Use/use.php)

<?php 
    use App\Http\Utility\GeneralUtility; 
    use App\Models\Project; 
    use App\Http\Selenium; 
?> 

PlayController.php(路径:/App/Http/Controllers/PlayController.php)

<?php 

    namespace App\Http\Controllers; 
    require app_path() . '\Projects\Test\Use\use.php'; 
    ... 

但是,如果我尝试在控制器中使用包含/必需的类,那么我会得到一些类缺失的信息。例如。

FatalThrowableError in PlayController.php line 30: 
Class 'App\Http\Controllers\Selenium' not found 

当然它工作如果我手动编写他们到控制器,而无需使用require

<?php 
    namespace App\Http\Controllers; 

    use App\Http\Utility\GeneralUtility; 
    use App\Models\Project; 
    use App\Http\Selenium; 

    ... 

那么,为什么它没有,如果我有/需要他们的工作?

+0

不,它的工作原理是如果我在类的上面手动编写使用语句。所以错误必须与include/require相关。 – Black

+0

他们是否都犯了这个错误,或者只是那个? – Nytrix

+0

这可能是一个愚蠢的评论,但可能是'使用'是使用类来制作PHP,并且仅包含它们。 – Syncro

它是不是可能你正在尝试做什么。 这里是文档从PHP手册就可以了:

注:导入的规则是每个文件的基础上,意思包含的文件将不继承父文件的导入规则。

该来源来自here,完整的文档链接是here

使用在编译时完成,并在运行时包含,这样就不可能。 但是你可以做的是,使用类似PHP-Parser的东西来代替脚本执行前的包含。

+0

是的,这是可能的。它干净吗? *不*绝对不是......这是我想的唯一方法.. – Nytrix

+0

我希望他们将在未来实现一个功能,这样就可以包含使用语句,这将带来很多新的可能性 – Black