好吧,我做了3個文件,我有index.php
其中i包括namespace.php
在那裏我有2個功能:所需的類不能實例
Namespace namespaceName{
class classLoader{
public function __construct() {
//not used
}
public function executeFunctionOutsideTheNamespace() {
include("class.php");
new classExtended("badass");
}
}
class classBase{
public function __construct(){
}
}
}
從
index.php
現在我嘗試動態地從第三個文件調用一個函數class.php
其中是從namespaces
擴展一個類的類。這裏是class.php
代碼
class classExtended extends namespaceName\classBase
{
public function __construct($action) {
echo $action;
}
}
,當然還有我的index.php
文件
require("namespace.php");
$namespace= new namespaceName\classLoader();
$oController = $namespace->executeFunctionOutsideTheNamespace();
$oController
是classLoader()
實例的權利?現在我從名稱空間namespaceName
的類classLoader()
調用函數executeFunctionOutsideTheNamespace
,並告訴include("class.php");
並實例化擴展類女巫是從名稱空間的classBase的一個擴展。我recide一個Fatal error: Class 'namespaceName\classExtended' not found in C:\xampp\htdocs\exercices\namespace.php on line 10
右鍵 - 文件'class.php'沒有聲明一個名稱空間,所以在全局命名空間。它不會繼承包含它的文件的名稱空間,因此您需要使用'new \ classExtended()'。這是你的問題嗎? – 2014-12-27 17:56:28
是的我的課是在'globalNamespace \ classExtended()'和我的命名空間是'namespaceName'因此是2個命名空間,我希望延伸'namespaceName \ classBase'的類也在'namespaceName'中,不在'globalNamespace '我的問題是如何將擴展類包含在'namespaceName'中? – 2014-12-27 18:03:29
你需要將它放在'namespaceName'中,並且在它的文件'namespace namespaceName'的頂部有一個聲明;'我會在下面寫下這個答案。 – 2014-12-27 18:05:27