如何深入理解php命名空间(一)的详细内容?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2372个文字,预计阅读时间需要10分钟。
PHP的命名空间功能早已出现,但一直以来缺乏深入探讨。这次趁着有时间,特意翻阅手册做了一次整理和总结,原本准备写一篇完整的文章,但发现内容实在太多。
php的命名空间功能已经出来很久了,但是一直以来没怎么深究过,这次赶着有时间所以特意翻着手册做一个整理和总结帮助自己完善完善,原本准备一篇写完,但发现内容其实还是蛮多的,放一起太长看着累,所以分两篇博客要好些。
一:命名空间概念:命名空间是一种封装事物的方法,类似于目录和文件。
命名空间解决的问题(手册上也写的很清楚,下面按照自己的理解简化了):
1:解决程序编写者自己写的类、常量、函数和php内部的或者第三方的出现名称冲突的情况。
2:创建别名,帮助解决类、常量、函数名称过长的情况,帮助提高代码的可读性,另外名称过长其实通常都是因为为了缓解第一类问题导致的。
二:如何定义命名空间
1:命名空间用关键字namespace声明,同时命名空间必须位于其他代码之前,包括任何非php代码以及空白符(php的declare关键字除外),否则会抛出一个fatal error。
例如:
<?php namespace Index; ?>
注意1:如果命名空间namespace前没有任何代码及空白符,但还是出现fatal error,这个应该是由于bom头导致的,去掉bom头就可以了。
注意2:在命名空间下,虽然可以放置所有合法的php代码,但是受命名空间影响的仅有类(抽象类以及traits)和接口、常量和函数。
2:与目录和文件的关系很象,PHP 命名空间也允许指定层次化的命名空间的名称。因此,命名空间的名字可以使用分层次的方式定义,分隔符是\。
本文共计2372个文字,预计阅读时间需要10分钟。
PHP的命名空间功能早已出现,但一直以来缺乏深入探讨。这次趁着有时间,特意翻阅手册做了一次整理和总结,原本准备写一篇完整的文章,但发现内容实在太多。
php的命名空间功能已经出来很久了,但是一直以来没怎么深究过,这次赶着有时间所以特意翻着手册做一个整理和总结帮助自己完善完善,原本准备一篇写完,但发现内容其实还是蛮多的,放一起太长看着累,所以分两篇博客要好些。
一:命名空间概念:命名空间是一种封装事物的方法,类似于目录和文件。
命名空间解决的问题(手册上也写的很清楚,下面按照自己的理解简化了):
1:解决程序编写者自己写的类、常量、函数和php内部的或者第三方的出现名称冲突的情况。
2:创建别名,帮助解决类、常量、函数名称过长的情况,帮助提高代码的可读性,另外名称过长其实通常都是因为为了缓解第一类问题导致的。
二:如何定义命名空间
1:命名空间用关键字namespace声明,同时命名空间必须位于其他代码之前,包括任何非php代码以及空白符(php的declare关键字除外),否则会抛出一个fatal error。
例如:
<?php namespace Index; ?>
注意1:如果命名空间namespace前没有任何代码及空白符,但还是出现fatal error,这个应该是由于bom头导致的,去掉bom头就可以了。
注意2:在命名空间下,虽然可以放置所有合法的php代码,但是受命名空间影响的仅有类(抽象类以及traits)和接口、常量和函数。
2:与目录和文件的关系很象,PHP 命名空间也允许指定层次化的命名空间的名称。因此,命名空间的名字可以使用分层次的方式定义,分隔符是\。

