当有多个子命名空间有相同名称类时,不指定使用哪个命名空间的情况下取最后定义的命名空间中的类,比如上面的
dog取的时
dogC中的类,在上面的例子中
animal是一个命名空间,
animal\cat animal\dogA animal\dogB animal\dogC都是其子命名空间,可以看到这样一共就存在四个命名空间,而使用各个命名空间的方法就是将命名空间的名字写完整,use是什么意思呢?其实和include和require有点像,就是在当前命名空间引入其他命名空间的别名,比如
use animal\dogA as alias其中的alias就是别名。
use animal\cat\cat这句话就是直接指定了
animal\cat命名空间的
cat类了,我们只需要直接new就可以创建cat对象,不需要在前面加命名空间