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 相关文章推荐
使用迭代器 遍历文件信息的详解
Jun 08 PHP
PHP set_error_handler()函数使用详解(示例)
Nov 12 PHP
php伪静态之APACHE篇
Jun 02 PHP
php数组转成json格式的方法
Mar 09 PHP
PHP7正式版测试,性能惊艳!
Dec 08 PHP
php通过smtp邮件验证登陆的方法
May 11 PHP
Linux php 中文乱码的快速解决方法
May 13 PHP
php简单解析mysqli查询结果的方法(2种方法)
Jun 29 PHP
php实现当前页面点击下载文件的简单方法
Sep 22 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
Jul 26 PHP
php面向对象重点知识分享
Sep 27 PHP
关于Laravel参数验证的一些疑与惑
Nov 19 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验证码的制作思路和实现方法
2015/11/12 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
2016/11/05 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
php生成复杂验证码(倾斜,正弦干扰线,黏贴,旋转)
2018/03/12 PHP
JQuery从头学起第三讲
2010/07/06 Javascript
JQuery each()嵌套使用小结
2014/04/18 Javascript
javascript闭包入门示例
2014/04/30 Javascript
Angularjs的Controller间通信机制实例分析
2016/11/07 Javascript
webpack学习笔记之代码分割和按需加载的实例详解
2017/07/20 Javascript
angular指令笔记ng-options的使用方法
2017/09/18 Javascript
Vue利用History记录上一页面的数据方法实例
2018/11/02 Javascript
vue 父组件通过$refs获取子组件的值和方法详解
2019/11/07 Javascript
Vue filter 过滤当前时间 实现实时更新效果
2019/12/20 Javascript
JavaScript实现简单进度条效果
2020/03/25 Javascript
修改Vue打包后的默认文件名操作
2020/08/12 Javascript
如何基于jQuery实现五角星评分
2020/09/02 jQuery
JavaScript常用工具函数库汇总
2020/09/17 Javascript
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
Python机器学习k-近邻算法(K Nearest Neighbor)实例详解
2018/06/25 Python
对python过滤器和lambda函数的用法详解
2019/01/21 Python
利用python脚本如何简化jar操作命令
2019/02/24 Python
Python extract及contains方法代码实例
2020/09/11 Python
详解HTML5中CSS外观属性
2020/09/10 HTML / CSS
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
俄罗斯商务邀请函
2014/01/26 职场文书
工程专业求职自荐书范文
2014/02/18 职场文书
百年校庆节目主持词
2014/03/27 职场文书
秋天的图画教学反思
2014/05/01 职场文书
安全生产目标管理责任书
2014/07/25 职场文书
教师批评与自我批评心得体会
2014/10/16 职场文书
承德避暑山庄导游词
2015/02/03 职场文书
政协常委会议主持词
2015/07/03 职场文书
学术会议领导致辞
2015/07/29 职场文书
JS如何使用剪贴板操作Clipboard API
2021/05/17 Javascript
python入门学习关于for else的特殊特性讲解
2021/11/20 Python
详解Python+OpenCV绘制灰度直方图
2022/03/22 Python