我有一個使用PDO的DB包裝類,並且在構造函數中創建了一個PDO對象。包裝類在我們的命名空間中,我們正在使用自動加載器。問題是在我們的命名空間中找不到PDO類,所以我嘗試使用如here所述的全局名稱空間。全局名稱空間中的PHP使用類
//Class file
namespace Company\Common;
class DB {
private function __construct(){
$this->Handle=new PDO(...);
}
}
有了這個,我得到這個(如預期):
Warning: require(...\vendors\Company\Common\PDO.class.php): failed to open stream
如果我這樣做:
namespace Company\Common;
use PDO;
我得到這個:
Fatal error: Class 'DB' not found in ...\includes\utils.php
而且utils的.php包含在錯誤行中,在實現前工作正常NG命名空間:
DB::getInstance();
或者我嘗試這樣做:
namespace Company\Common;
class DB {
private function __construct(){
$this->Handle=new \PDO(...);
}
}
哪個試圖加載我們的命名空間中的PDO類,因爲它本來是。
我怎樣才能解決這個問題?我想通過做use PDO
或new \PDO
它會加載全球PDO類,但它似乎並沒有工作?
在什麼命名空間是PDO類? – shadyyx
你在哪裏調用DB類? '使用\ PDO;'是正確的,問題是其他。 –
@shadyyx PDO類是PDO庫中的全局PDO類。 –