第一份资料中的说法如下:
----------------------------------------------------------------------------------------------------------------------------------------------------
在说别名和导入之前,需要知道关于空间三种名称的术语,以及PHP是怎样解析它们的。官方文档说得非常好,我就直接拿来套了。
1.非限定名称,或不包含前缀的类名称,例如 $comment = new Comment();。如果当前命名空间是Blog\Article,Comment将被解析为Blog\Article\Comment。如果使用Comment的代码不包含在任何命名空间中的代码(全局空间中),则Comment会被解析为Comment。
2.限定名称,或包含前缀的名称,例如 $comment = new Article\Comment();。如果当前的命名空间是Blog,则Comment会被解析为Blog\Article\Comment。如果使用Comment的代码不包含在任何命名空间中的代码(全局空间中),则Comment会被解析为Comment。
-------------------------------------------------------------------------------------------------------------------------------------------------------
第二份资料中的说法如下:
-------------------------------------------------------------------------------------------------------------------------------------------------------
限定名称,或包含前缀的名称,例如 $a = new subnamespace\foo(); 或 subnamespace\foo::staticmethod();。如果当前的命名空间是 currentnamespace,则 foo 会被解析为 currentnamespace\subnamespace\foo。如果使用 foo 的代码是全局的,不包含在任何命名空间中的代码,foo 会被解析为subnamespace\foo
-------------------------------------------------------------------------------------------------------------------------------------------------------到底哪个说法对啊,郁闷~~~~~~~~~~~~

解决方案 »

  1.   

    第二个对!第一个作者显然是抄错了代码
    命名是 $comment = new Article\Comment();
    他偏要说是Comment
    那么,命名空间 Article 到哪里去了
    难道 Article\Comment 和 Comment 会是一回事?
    他只是复制了 非限定名称 一节的结尾,而没修改而已
      

  2.   

    第二吧。
    第一个是 new Article\Comment();  不是Comment
      

  3.   

    可以参考php中文网的教程!www.php.cn
      

  4.   

    http://www.cnblogs.com/kuyuecs/p/3556421.html
      

  5.   

    什么是命名空间?“从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。具体举个例子,文件 foo.txt 可以同时在目录/home/greg 和 /home/other 中存在,但在同一个目录中不能存在两个 foo.txt 文件。另外,在目录 /home/greg 外访问 foo.txt 文件时,我们必须将目录名以及目录分隔符放在文件名之前得到 /home/greg/foo.txt。这个原理应用到程序设计领域就是命名空间的概念。”——命名空间概述PHP命名空间该如何理解?
     从本质上讲,命名空间就是一个容器,这个容器内我们可以放入类、函数和变量,他们在同一命名空间内可以无条件相互访问。在命名空间之外,就必须引用或者导入其他命名空间,才能调用它们包含的这些项。  命名空间跟shell中的文件目录的概念是一样一样的。在当前目录下可以直接用文件名访问所有文件,如果需要访问其他目录下的文件,就需要输入相对路径或绝对路径。
    引用方式:
    namespace foo;
     class Foo {  
             public function foo()  
             {
                  return \top\namespace\bar\Bar::fuck(); 
             }
     }导入方式:
    namespace foo;
    use top\namespace\bar\Bar;
     class Foo {
            public function foo()
            {       
                return Bar::fuck(); 
            }
     }命名空间的存在是为了解决下面两个问题:  1. 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。  2. 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。