use在php中的使用方法(代码示例)
发布:smiling 来源: PHP粉丝网 添加日期:2022-06-29 08:41:49 浏览: 评论:0
最近一段时间在研究php框架,一直想的什么时候才能开发出自己的框架,当然这是为了提升自己的编程水平,同时能把平时学的零散的东西糅合在一块熟练应用。但是开发一个框架根本不知道如何做起,先开发什么,虽然php的框架也不少,但是都是如何应用,没有文档和视频可以学习,这是让我特别郁闷的事情,相信不少想自己开发框架玩的小伙伴都有类似的感受,郁闷归郁闷,自己还是动手做了,做的时候困难和想象的一样难,从一开始就有点蒙了。
那就是命名空间的使用及use引入。看了很多网上的说法,也看了官方文档,意思大概明白,也很好理解,命名空间还好说,给这个空间起个名字嘛,但是use具体操作起来就不行了,怎么也搞不通。后来看一个yii学习视频才恍然明白。
比方说建三个文件。
第一个文件 A.php,里边有两个类,命名空间是 a\b\c;
- <?php
- namespace a\b\c;
- class Apply{
- function get_info(){
- echo 'this is A Apply';
- }
- }
- class C{
- function info(){
- echo 'this is info';
- }
- }
第二个文件 B.php 命名空间 a\b\d;
- <?php
- namespace a\b\d;
- class Apply{
- function get_info(){
- echo 'this is B Apply';
- }
- }
第三个文件 index.php ,用来使用上边两个文件的类。
比方说我们现在想实例化A.php里的类,该怎么实现呢?
首先要包含这个文件 require_once(‘A.php’);
然后 use a\b\c;? 还是a\b\c\A? 起初我也是这么认为的。其实这是错的,use应该是这样的,命名空间\这个空间下你要实例化类的类名。比方说我们要实例化 A.php里的Apply类,那么 use a\b\c\Apply; 这就相当于引入这个类,接下来再 new Apply();调用里边的方法,跟平常是一样的。如果要实例化类C,就 use a\b\c\C;
注意:use不等于require_once或者include,use的前提是已经把文件包含进当前文件。
顺便提一句,在MVC模式中,类名和文件名是相同的,所以use的时候会让不了解的人以为use后面跟的是文件名,我之前就这么以为的。其实use的还是类名。
有的人可能问了,那我不同的命名空间下,有相同的类名,在同一个文件中使用怎么办?比方说我们上边的index.php,把A.php和B.php都包含进来,然后new Apply();这个时候是会报错的,解决方案就是起别名,比方说 use a\b\d\Apply as b; 此时我们new 的时候不应该写成 new Apply();而是new b();这样就不会发生冲突了。
Tags: use
- 上一篇:有利于新手的php基础知识总结
- 下一篇:最后一页
相关文章
- ·php $_SERVER['HTTP_USER_AGENT'] 用法介绍(2014-03-06)
- ·php登录与退出登录实例代码(2014-03-11)
- ·HTTP_REFERER 与 HTTP_USER_AGENT的使用方法(2014-09-18)
- ·php中get_meta_tags()、CURL与user-agent信息对比(2014-09-22)
- ·PHP中的use关键字概述(2021-03-23)
- ·PHP JSON出错:Cannot use object of type stdClass as array解决方法(2021-03-31)
- ·PHP命令空间namespace及use的用法小结(2021-08-21)
- ·PHP命名空间namespace定义及导入use用法详解(2021-09-05)
- ·use关键字在php中的使用(含代码)(2022-06-23)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)