2017-03-04 43 views
1

我動態生成我的使用語句,並嘗試包含它們。如何包含/需要使用操作語句?

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

回答

2

它是不是可能你正在嘗試做什麼。 這裏是文檔從PHP手冊就可以了:

注:導入的規則是每個文件的基礎上,意思包含的文件將不繼承父文件的導入規則。

該來源來自here,完整的文檔鏈接是here

1

使用在編譯時完成,並在運行時包含,這樣就不可能。 但是你可以做的是,使用類似PHP-Parser的東西來代替腳本執行前的包含。

+0

是的,這是可能的。它乾淨嗎? *不*絕對不是......這是我想的唯一方法.. – Nytrix

+0

我希望他們將在未來實現一個功能,這樣就可以包含使用語句,這將帶來很多新的可能性 – Black