PHP命名空间namespace及use的简单用法分析

 更新时间:2018年08月03日 11:06:17   作者:Frank看庐山  
这篇文章主要介绍了PHP命名空间namespace及use的简单用法,结合实例形式分析了php命名空间的功能、使用方法及相关操作注意事项,需要的朋友可以参考下

本文实例讲述了PHP命名空间namespace及use的简单用法。分享给大家供大家参考,具体如下:

最近一段时间在研究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();这样就不会发生冲突了。

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

相关文章

  • php正则表达式(regar expression)

    php正则表达式(regar expression)

    在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的语法。
    2011-09-09
  • php中HTTP_REFERER函数用法实例

    php中HTTP_REFERER函数用法实例

    这篇文章主要介绍了php中HTTP_REFERER函数用法,以实例的形式分别讲述了判断用户来路与伪造来路地址等应用,需要的朋友可以参考下
    2014-11-11
  • php判断数组中是否存在指定键(key)的方法

    php判断数组中是否存在指定键(key)的方法

    这篇文章主要介绍了php判断数组中是否存在指定键(key)的方法,实例分析了php中array_key_exists和isset的使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • php将html转成wml的WAP标记语言实例

    php将html转成wml的WAP标记语言实例

    这篇文章主要介绍了php将html转成wml的WAP标记语言的方法,实例分析了php实现标签的转换与过滤的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-07-07
  • PHP简单预防sql注入的方法

    PHP简单预防sql注入的方法

    这篇文章主要介绍了PHP简单预防sql注入的方法,结合实例形式简单分析了php针对sql参数过滤实现防注入的相关技巧,需要的朋友可以参考下
    2016-09-09
  • PHP+jQuery实现即点即改功能示例

    PHP+jQuery实现即点即改功能示例

    这篇文章主要介绍了PHP+jQuery实现即点即改功能,涉及php数组读取、遍历及jQuery事件响应与动态修改页面元素属性相关操作技巧,需要的朋友可以参考下
    2019-02-02
  • php文档更新介绍

    php文档更新介绍

    php.net最近更新了php文档,比较有用的是新增的pman工具。pman是一个命令行小工具,方便查看php函数的本地帮助文档,但是不包含php.net的评论数据。
    2011-07-07
  • php正则表达式基本知识与应用详解【经典教程】

    php正则表达式基本知识与应用详解【经典教程】

    这篇文章主要介绍了php正则表达式基本知识与应用,详细讲述了php正则表达式的基本概念、知识点并结合实例形式分析了php正则表达式的使用技巧,需要的朋友可以参考下
    2017-04-04
  • php批量缩放图片的代码[ini参数控制]

    php批量缩放图片的代码[ini参数控制]

    php有专门处理图片的函数,对于一些要求较高的图片缩放,php也能做到。
    2011-02-02
  • 火车头采集器3.0采集图文教程

    火车头采集器3.0采集图文教程

    今天要给大家做示例的网站是163的 娱乐频道 这个应该是个比较通用和实用的规则,下面开始。
    2007-03-03

最新评论