php 命名空间(namespace)原理与用法实例小结


Posted in PHP onNovember 13, 2019

本文实例讲述了php 命名空间(namespace)原理与用法。分享给大家供大家参考,具体如下:

命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。这种情况下只要避免命名重复就可以解决,最常见的一种做法是约定一个前缀,也可以采用命名空间的方式解决

TestSpace.php

<?php
namespace Demo\Test;    //声明一个命名空间Demo
class Test1
{
  static function test()
  {
    return "my class name demo1";
  }
  function test1()
  {
    return "2222222222222222222B";
  }
}

模式一 直接实例该类

index1.php

require("TestSpace.php");
$ms1 = new \Demo\Test\Test1();
echo $ms1->test1() . "<br />\n";
echo \Demo\Test\Test1::test();

模式二 use 载入该类

index2.php

require("TestSpace.php");
use Demo\Test\Test1;  //导入命名空间Demo\Test下的Tese1类
$ms2 = new Test1();
echo $ms2->test1() . "<br />\n";
echo Test1::test();

模式三 use载入命名空间

index3.php

use Demo\Test;     //载入命名空间Demo\Test 这一层级
$ms3 = new Test\Test1();
echo $ms3 ->test1() . "<br />\n";
echo Test\Test1::test();

模式四

index4.php

use Demo\Test as test;
$ms3 = new test\Test1();
echo $ms3 ->test1() . "<br />\n";
echo test\Test1::test();

至此 thinkphp 3.2版本中我们看到的

namespace Home\Controller;
use Think\Controller;

namespace 声明的是该文件的命名空间;

use 载入在Think命名空间下的Controller 类

tip : Controller 类 位于 Thinkphp/Library/Think/Controller.class.php

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

PHP 相关文章推荐
php 友好URL的实现(吐血推荐)
Oct 04 PHP
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
May 04 PHP
php调整gif动画图片尺寸示例代码分享
Dec 05 PHP
php自定义urlencode,urldecode函数实例
Mar 24 PHP
php根据数据id自动生成编号的实现方法
Oct 16 PHP
深入解析PHP中SESSION反序列化机制
Mar 01 PHP
Yii2数据库操作常用方法小结
May 04 PHP
php写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名
May 26 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
Jul 19 PHP
Laravel中encrypt和decrypt的实现方法
Sep 24 PHP
php利用云片网实现短信验证码功能的示例代码
Nov 18 PHP
PHP实现多图上传和单图上传功能
May 17 PHP
在 PHP 和 Laravel 中使用 Traits的方法
Nov 13 #PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
Nov 13 #PHP
php 自定义函数实现将数据 以excel 表格形式导出示例
Nov 13 #PHP
php array 转json及java 转换 json数据格式操作示例
Nov 13 #PHP
Yii框架学习笔记之应用组件操作示例
Nov 13 #PHP
Yii框架自定义数据库操作组件示例
Nov 11 #PHP
php接口隔离原则实例分析
Nov 11 #PHP
You might like
异步加载技术实现当滚动条到最底部的瀑布流效果
2014/09/16 PHP
PHP基于IMAP收取邮件的方法示例
2017/08/07 PHP
PHP5.5新特性之yield理解与用法实例分析
2019/01/11 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
2020/03/02 PHP
javascript编程起步(第四课)
2007/01/10 Javascript
javascript for循环设法提高性能
2010/02/24 Javascript
JavaScript Chart 插件整理
2010/06/18 Javascript
检测jQuery.js是否已加载的判断代码
2011/05/20 Javascript
form表单action提交的js部分与html部分
2014/01/07 Javascript
js动态移动滚动条至底部示例代码
2014/04/24 Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
2016/06/25 Javascript
html+js+highcharts绘制圆饼图表的简单实例
2016/08/04 Javascript
WebSocket+node.js创建即时通信的Web聊天服务器
2016/08/08 Javascript
Bootstrap文件上传组件之bootstrap fileinput
2016/11/25 Javascript
JavaScript和JQuery获取DIV值的方法示例
2017/03/07 Javascript
javascript实现Java中的Map对象功能的实例详解
2017/08/21 Javascript
浅谈js中的this问题
2017/08/31 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
2017/12/18 Javascript
vue使用echarts图表的详细方法
2018/10/22 Javascript
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
2019/09/27 Javascript
原生javascript如何实现共享onload事件
2020/07/03 Javascript
[06:07]刀塔密之二:攻之吾命受之吾幸
2014/07/03 DOTA
[46:00]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第一局
2016/03/03 DOTA
Python实现霍夫圆和椭圆变换代码详解
2018/01/12 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
2019/06/26 Python
Python3自定义http/https请求拦截mitmproxy脚本实例
2020/05/11 Python
python中四舍五入的正确打开方式
2021/01/18 Python
奥地利汽车配件店:Pkwteile.at
2017/03/10 全球购物
2014国庆节主题活动方案:快乐的国庆节
2014/09/16 职场文书
2014年辅导员工作总结
2014/11/18 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
2015年教师业务工作总结
2015/05/26 职场文书
电力培训学习心得体会
2016/01/11 职场文书
2016廉洁教育心得体会
2016/01/20 职场文书
工作建议书范文
2019/07/08 职场文书
如何使用PyCharm及常用配置详解
2021/06/03 Python