2013-06-20 29 views
0

初学者:我想知道我们是否可以在我们的应用程序中使用“使用”关键字作为可选项。使用“使用”关键字的可选命名空间

我在我的应用程序中使用Laravel 4。我有一个控制器和它的功能。我指定具体功能的具体路线。

但是,此控制器中的一个功能需要使用外部类。我使用这样的“使用”关键字:

use Payum\Request\CaptureRequest; 
use Payum\AuthorizeNet\Aim\PaymentFactory; 

这将工作在控制器的开始,开放课程之前。但是,我想知道是否只有在需要这些类的特定函数中才能激活这些使用条款?我试过了,但它显然抛出了无效的语法错误。

如果我能回答这个问题和背后的理论,我会很高兴。我甚至可能会问一个愚蠢的问题:) [因为我知道我可以通过使用像Payum\Request\CaptureRequest\Function这样的完整引用来引用这些类中的函数。或者,我可以在控制器文件的开头写这个,因为它不会给任何负载问题的执行]什么,我想实现

例:

//use Payum\Request\CaptureRequest; 
//use Payum\AuthorizeNet\Aim\PaymentFactory; 
////// instead of using the reference here... 

class MotawordController extends BaseController { 

    function first() 
    { 
     ... 
    } 

    function second() 
    { 

     use Payum\Request\CaptureRequest; 
     use Payum\AuthorizeNet\Aim\PaymentFactory; 

     ... 
    } 

回答

1

不,你不容。从PHP manual

use关键字必须在文件的最外层范围(全局范围)或内部命名空间声明中声明。这是因为导入是在编译时完成的,而不是运行时完成的,所以它不能是块范围的。