namespace必须在文件的最开始部分,其次是use语句
php的namespace和C++,C#的一样,旨在限定某一作用集合,不具备java的自动导入能力
在同一个命名空间中,无须使用use
4.命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。这种情况下只要避免命名重复就可以解决,最常见的一种做法是约定一个前缀。
5.不同文件中可以使用同样的命名空间
实例:
统一文件中可以使用多个命名空间,但要注意的是,这种方式极其不规范,这里仅作演示使用.
使用方式:
命名空间可以使用子空间
----------------------------------------------------------------------------------------------
文件引入和命名空间问题:文件的引入和命名空间是2个不同放入概念,这是和java等最大的区别
1.include,require引入的文件路径不一定和命名空间要相关才行,统一目录下也可以使用
2.对于面向对象的开发,命名空间+自定义的__autoload函数进行文件的引入,这种方式命名空间和路径必须完全相同
3.对于类文件,使用use时,最好用as转换,如 命名空间为\App\Member\Model的User类,可以转为 use \App\Member\Model\User as User;这样我们引入User.class.php之后,可以缩短对象的创建方式。
4.如上,可能在同一命名空间下有很多类,这个问题我们可以使用
use \App\Member\Model\User as Member
var user = new member\User();
5.当引入文件的命名空间的根namespace和当前文件的命名空间相同,可以不加 "\",如 user Member\Model
---------------------------------------------------------------------------------------------
有时,有些库文件不需要命名空间,那么默认的命名空间是 "\"
我有一个common_inc.php脚本文件,里面有一些好用的函数和类:
代码如下:
在一个命名空间里引入这个脚本,脚本里的元素不会归属到这个命名空间。如果这个脚本里没有定义其它命名空间,它的元素就始终处于公共空间中:
使用use