2010-07-25 91 views
0

我很奇怪,爲什麼我的命名空間不正確解析...我有PHP 5.3命名空間和使用

use \Doctrine\ORM; 
... 
} catch (NoResultException $e) { // shld resolve to \Doctrine\ORM\NoResultException but fails 
... 
} catch() { 
    // code always ends up here if NoResultException is thrown 
    // unless i fully qualify the class as\Doctrine\ORM\NoResultException 
} 

回答

2
use \Doctrine\ORM; 

此聲明的別名命名ORM指向\主義\ ORM。這並不意味着您在代碼中提到的所有類名都將使用此別名。你仍然需要指定要使用這樣的:

catch (ORM\NoResultException) { 

ORM \ NoResultException將指向\原則\ ORM \ NoResultException

除了
+0

,他們可以做'使用\原則\ ORM \ NoResultException ;'爲每個班級 – JasonDavis 2011-12-31 19:04:01