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里面的抽象类
Jan 28 PHP
php提高网站效率的技巧
Sep 29 PHP
CodeIgniter分页类pagination使用方法示例
Mar 28 PHP
PHP中header用法小结
May 23 PHP
PHP中explode函数和split函数的区别小结
Aug 24 PHP
利用PHP将图片转换成base64编码的实现方法
Sep 13 PHP
浅谈php和js中json的编码和解码
Oct 24 PHP
MAC下通过改apache配置文件切换php多版本的方法
Apr 26 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
May 05 PHP
Laravel 框架返回状态拦截代码
Oct 18 PHP
浅谈php常用的7大框架的优缺点
Jul 20 PHP
PHP接入支付宝接口失效流程详解
Nov 10 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的urlencode()URL编码函数浅析
2011/08/09 PHP
通达OA公共代码 php常用检测函数
2011/12/14 PHP
解析php多线程下载远程多个文件
2013/06/25 PHP
浅析php创建者模式
2014/11/25 PHP
javascript 匿名函数的理解(透彻版)
2010/01/28 Javascript
js中格式化日期时间型数据函数代码
2010/11/08 Javascript
JS鼠标滑过图片时切换图片实现思路
2013/09/12 Javascript
javascript匿名函数实例分析
2014/11/18 Javascript
JavaScript常用小技巧小结
2014/12/29 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
2015/07/17 Javascript
全面理解JavaScript中的继承(必看)
2016/06/16 Javascript
JavaScript数据存储 Cookie篇
2016/07/02 Javascript
js控制台输出的方法(详解)
2016/11/26 Javascript
js中string和number类型互转换技巧(分享)
2016/11/28 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
webpack 打包压缩js和css的方法示例
2018/03/20 Javascript
[51:34]Ti4主赛事胜者组 DK vs EG 2
2014/07/19 DOTA
Python导出DBF文件到Excel的方法
2015/07/25 Python
Django中针对基于类的视图添加csrf_exempt实例代码
2018/02/11 Python
对tf.reduce_sum tensorflow维度上的操作详解
2018/07/26 Python
Python小进度条显示代码
2019/03/05 Python
Python对ElasticSearch获取数据及操作
2019/04/24 Python
Python可迭代对象操作示例
2019/05/07 Python
Python 用turtle实现用正方形画圆的例子
2019/11/21 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
CSS3中的Media Queries学习笔记
2016/05/23 HTML / CSS
HTML5 textarea高度自适应的两种方案
2020/04/08 HTML / CSS
英国最大的线上保健品零售商之一:Vitamin Planet
2016/12/01 全球购物
Ted Baker英国官网:男士和女士服装及配件
2017/03/13 全球购物
eDreams意大利:南欧领先的在线旅行社
2018/11/23 全球购物
法律专业应届生自荐信范文
2014/01/06 职场文书
工程招投标邀请书
2014/01/30 职场文书
后勤部经理岗位职责
2014/02/23 职场文书
求职自我评价范文100字
2014/09/23 职场文书
对PyTorch中inplace字段的全面理解
2021/05/22 Python