PHP中namespace和use语句的具体用法有哪些区别?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2190个文字,预计阅读时间需要9分钟。
在PHP中,如果遇到函数或类名重复的问题,一个最明确的目标是解决重命名问题。不允许两个函数或类具有相同的名称,否则会产生致命错误。在这种情况下,只需避免命名重复即可解决问题。最常见的解决方法是:
修改其中一个函数或类的名称,确保它们具有唯一标识。
命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。这种情况下只要避免命名重复就可以解决,最常见的一种做法是约定一个前缀。
使用namespace的目的:
团队合作项目时,避免与团队其它成员新建的类发生冲突;个人负责项目时,避免前后新建的类发生冲突;
据个人理解,用到所需要的类时,需要先require或include引入,所以会发生类重定义的错误的前提是:两个相同命名的类都有被引入。目前有些php框架会自动加载(即include)所有新建的model类,所以为了避免你新建的model类和项目框架原生的核心类发生重名冲突,采用了namespace。(想了想,与团队成员新建的类产生冲突应该通过沟通避免,即使事发后也应该重新调整类名即时维护,避免后期造成因为对类的理解混淆而带来维护上的复杂度提高)
结合使用方法来进一步理解它的使用目的吧。
本文共计2190个文字,预计阅读时间需要9分钟。
在PHP中,如果遇到函数或类名重复的问题,一个最明确的目标是解决重命名问题。不允许两个函数或类具有相同的名称,否则会产生致命错误。在这种情况下,只需避免命名重复即可解决问题。最常见的解决方法是:
修改其中一个函数或类的名称,确保它们具有唯一标识。
命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。这种情况下只要避免命名重复就可以解决,最常见的一种做法是约定一个前缀。
使用namespace的目的:
团队合作项目时,避免与团队其它成员新建的类发生冲突;个人负责项目时,避免前后新建的类发生冲突;
据个人理解,用到所需要的类时,需要先require或include引入,所以会发生类重定义的错误的前提是:两个相同命名的类都有被引入。目前有些php框架会自动加载(即include)所有新建的model类,所以为了避免你新建的model类和项目框架原生的核心类发生重名冲突,采用了namespace。(想了想,与团队成员新建的类产生冲突应该通过沟通避免,即使事发后也应该重新调整类名即时维护,避免后期造成因为对类的理解混淆而带来维护上的复杂度提高)
结合使用方法来进一步理解它的使用目的吧。

