2014-09-05 48 views
0

我有以下代碼:PHP變量的作用域裏面包含的文件

<?php 

session_start(); 
require_once('ClassFile.php'); 
use ClassFile\Component; 

include 'somefile.php'; 

?> 

在這個模板我可以訪問該組件的屬性(如$補償=新的組件();)。但是,Component在somefile.php中不可見。我收到一個錯誤,說明它不存在。 (差)解決方法是複製somefile.php中的相同代碼。任何人都可以說發生了什麼事?我是否需要以某種方式全局化require_once中的項目並使用語句?謝謝。

+0

什麼是'somefile.php'不起作用? – Machavity 2014-09-05 17:23:02

回答

2

如果你的意思是你不能在somefile.php裏面做new Component,那是因爲這個類叫做ClassFile\Component而不是Componentuse別名不會擴展到包含的文件。如果您還想在somefile.php中別名ClassFile\ComponentComponent,您也必須在該文件中編寫相應的use語句。

命名空間始終是每個文件。

+0

啊,所以我可以在include中添加另一個use語句,或者用它的完全限定名來引用它。謝謝。 – JRomeo 2014-09-05 17:51:22