php namespace的用法:【namespace Article;】,表示创建一个名为Article的命名空间。需要注意的是,当前脚本文件的第一个命名空间前面不能有任何代码。
创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站建设、成都网站制作、简阳网络推广、小程序制作、简阳网络营销、简阳企业策划、简阳品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;创新互联为所有大学生创业者提供简阳建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。这种情况下只要避免命名重复就可以解决,最常见的一种做法是约定一个前缀。
(推荐教程:php视频教程)
命名空间将代码划分出不同的空间(区域),每个空间的常量、函数、类(为了偷懒,我下边都将它们称为元素)的名字互不影响, 这个有点类似我们常常提到的'封装'的概念。
创建一个命名空间需要使用namespace关键字,这样:
<?php //创建一个名为'Article'的命名空间 namespace Article; ?>
要注意的是,当前脚本文件的第一个命名空间前面不能有任何代码,下面的写法都是错误的:
例一
//在脚本前面写了一些逻辑代码 <?php $path = "/"; class Comment { } namespace Article; ?>
例二
</html> <?php namespace Article; ?>
为什么要说第一个命名空间呢?因为同一脚本文件中可以创建多个命名空间。
下面我创建了两个命名空间,顺便为这两个空间各自添加了一个Comment类元素:
<?php //创建一个名为'Article'的命名空间 namespace Article; //此Comment属于Article空间的元素 class Comment { } //创建一个名为'MessageBoard'的命名空间 namespace MessageBoard; //此Comment属于MessageBoard空间的元素 class Comment { } ?>
在不同空间之间不可以直接调用其它元素,需要使用命名空间的语法:
<?php namespace Article; class Comment { } namespace MessageBoard; class Comment { } //调用当前空间(MessageBoard)的Comment类 $comment = new Comment(); //调用Article空间的Comment类 $article_comment = new \\Article\\Comment(); ?>
可以看到,在MessageBoard空间中调用article空间里的Comment类时,使用了一种像文件路径的语法: \\空间名\\元素名
除了类之外,对函数和常量的用法是一样的,下面我为两个空间创建了新的元素,并在MessageBoard空间中输出了它们的值。
<?php namespace Article; const PATH = '/article'; function getCommentTotal() { return 100; } class Comment { } namespace MessageBoard; const PATH = '/message_board'; function getCommentTotal() { return 300; } class Comment { } //调用当前空间的常量、函数和类 echo PATH; ///message_board echo getCommentTotal(); //300 $comment = new Comment(); //调用Article空间的常量、函数和类 echo \\Article\\PATH; ///article echo \\Article\\getCommentTotal(); //100 $article_comment = new \\Article\\Comment(); ?>
然后我的确得到了Article空间的元素数据。
相关推荐:php培训
当前题目:phpnamespace的用法
本文地址:https://www.cdcxhl.com/article46/checeg.html
成都网站建设公司_创新互联,为您提供网站导航、网站排名、定制网站、静态网站、品牌网站设计、云服务器
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联