简体   繁体   English

PHP 5.3命名空间和使用

[英]PHP 5.3 Namespaces and use

i am wondering why my namespaces are not resolved correctly ... i have 我想知道为什么我的命名空间无法正确解析...我有

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
}
use \Doctrine\ORM;

This declare an alias named ORM that points to \\Doctrine\\ORM. 这将声明一个名为ORM的别名,该别名指向\\ Doctrine \\ ORM。 It doesn't mean that all the class name you mention in your code will use this alias. 这并不意味着您在代码中提到的所有类名都将使用此别名。 You still have to specify that you want to use it like this : 您仍然必须指定您要像这样使用它:

catch (ORM\NoResultException) {

ORM\\NoResultException will point to \\Doctrine\\ORM\\NoResultException ORM \\ NoResultException将指向\\ Doctrine \\ ORM \\ NoResultException

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM