-2
我有兩個類,都在不同的命名空間。當我試圖從一個命名空間中創建對象,然後我得到的錯誤PHP命名空間和類
Fatal error: Class 'Classes\DrDatabase' not found in C:\Path\to\workspace\AplicationName\app\models\Users.model.php on line XY
是不是我沒有用PHP命名空間的理解嗎?
兩個文件:
FILE 1
namespace Classes;
class DrDatabase extends MssqlDatabase {
public function __construct() {
parent::createLog(__CLASS__);
parent::connect('ipaddress', 'database', 'user', 'password');
if ($this->link) {
$this->log->info('Connected');
}
}
}
FILE 2
namespace Model;
use \Classes\DrDatabase;
class UsersModel implements MasterModel {
private function get($id, $onlyEnabled) {
$db = new DrDatabase();
$getOnlyEnabled = 1;
if (!$onlyEnabled)
$getOnlyEnabled = 0;
$SQL = "SELECT * FROM table";
$resultSet = $db->query($SQL);
$result = array();
while ($row = mssql_fetch_assoc($resultSet)) {
$result[] = self::createUserObject($row['col1'],$row['col2']);
}
}
}
用前面的「\」來試試它,如下所示:'$ db = new \ DrDatabase();' – w00
您只能實例化已定義的類。在你的情況下,'\ Classes \ DrDatabase'的定義尚未加載。加載它,你很好。這正是錯誤信息告訴你的,而不是說謊。 – hakre
\類是名字空間的一個可怕的名字。它沒有告訴你任何關於它包含的內容。 – GordonM