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 编程的 5个良好习惯
Feb 20 PHP
PHP Socket 编程
Apr 09 PHP
PHP采集利器 Snoopy 试用心得
Jul 03 PHP
php中session使用示例
Mar 29 PHP
php采用curl模仿登录人人网发布动态的方法
Nov 07 PHP
php实现比较两个文件夹异同的方法
Jun 18 PHP
Yii编程开发常见调用技巧集锦
Jul 15 PHP
PHP简单获取网站百度搜索和搜狗搜索收录量的方法
Aug 23 PHP
PHP实现表单提交时去除斜杠的方法
Dec 26 PHP
thinkphp5框架路由原理与用法详解
Feb 11 PHP
tp5框架前台无限极导航菜单类实现方法分析
Mar 29 PHP
PHP笛卡尔积实现原理及代码实例
Dec 09 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
使用php+xslt在windows平台上
2006/10/09 PHP
PHP4之COOKIE支持详解
2006/10/09 PHP
第三节--定义一个类
2006/11/16 PHP
PHP CKEditor 上传图片实现代码
2009/11/06 PHP
php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
2020/04/05 PHP
php中使用gd库实现远程图片下载实例
2015/05/12 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
jquery连缀语法如何实现
2012/11/29 Javascript
javascript 数组排序函数sort和reverse使用介绍
2013/11/21 Javascript
实例讲解JS中数组Array的操作方法
2014/05/09 Javascript
基于JavaScript制作霓虹灯文字 代码 特效
2015/09/01 Javascript
基于javascript实现窗口抖动效果
2016/01/03 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
2016/09/04 Javascript
关于javascript的一些知识以及循环详解
2016/09/12 Javascript
微信小程序 判断手机号的实现代码
2017/04/19 Javascript
用js实现before和after伪类的样式修改的示例代码
2017/09/07 Javascript
vue2.0 如何把子组件的数据传给父组件(推荐)
2018/01/15 Javascript
详解关于webpack多入口热加载很慢的原因
2019/04/24 Javascript
[01:10]DOTA2 Supermajor:英雄,由我们见证
2018/05/14 DOTA
代码详解django中数据库设置
2019/01/28 Python
pyqt5 获取显示器的分辨率的方法
2019/06/18 Python
python3实现raspberry pi(树莓派)4驱小车控制程序
2020/02/12 Python
pycharm安装及如何导入numpy
2020/04/03 Python
打印tensorflow恢复模型中所有变量与操作节点方式
2020/05/26 Python
关于探究python中sys.argv时遇到的问题详解
2021/02/23 Python
英国最大的汽车配件在线商店:Euro Car Parts
2019/09/30 全球购物
Deux par Deux官方网站:设计师童装
2020/01/03 全球购物
女子职高个人自荐书
2014/02/01 职场文书
《绿色蝈蝈》教学反思
2014/03/02 职场文书
勾股定理课后反思
2014/04/26 职场文书
2015年元旦标语大全
2014/12/09 职场文书
2015年学校总务处工作总结
2015/05/19 职场文书
2015年高三班主任工作总结
2015/05/21 职场文书
2015年青年教师工作总结
2015/05/25 职场文书
泰坦尼克号观后感
2015/06/04 职场文书
2016年中学端午节主题活动总结
2016/04/01 职场文书