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实现小型站点广告管理(修正版)
Oct 09 PHP
用 PHP5 轻松解析 XML
Dec 04 PHP
php中看实例学正则表达式
Dec 25 PHP
分享PHP入门的学习方法
Jan 02 PHP
php 运行效率总结(提示程序速度)
Nov 26 PHP
PHP中用正则表达式清除字符串的空白
Jan 17 PHP
简单了解PHP编程中数组的指针的使用
Nov 30 PHP
PHP实现四种基础排序算法的运行时间比较(推荐)
Aug 11 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
Feb 14 PHP
php使用curl伪造浏览器访问操作示例
Sep 30 PHP
PHP判断当前使用的是什么浏览器(推荐)
Oct 27 PHP
分享8个Laravel模型时间戳使用技巧小结
Feb 12 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强制用户转向www域名的方法
2015/06/19 PHP
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
PHP获取昨天、今天及明天日期的方法
2016/02/03 PHP
php set_include_path函数设置 include_path 配置选项
2016/10/30 PHP
php 魔术常量详解及实例代码
2016/12/04 PHP
thinkPHP5框架设置404、403等http状态页面的方法
2018/06/05 PHP
经验几则 推荐
2006/09/05 Javascript
UI Events 用户界面事件
2012/06/27 Javascript
基于Jquery实现键盘按键监听
2014/05/11 Javascript
jquery仅用6行代码实现滑动门效果
2015/09/07 Javascript
ANGULARJS中使用JQUERY分页控件
2015/09/16 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
在JavaScript中调用Java类和接口的方法
2016/09/07 Javascript
bootstrap table 数据表格行内修改的实现代码
2017/02/13 Javascript
微信小程序的日期选择器的实例详解
2017/09/29 Javascript
NodeJs通过async/await处理异步的方法
2017/10/09 NodeJs
mui框架移动开发初体验详解
2017/10/11 Javascript
koa+jwt实现token验证与刷新功能
2019/05/30 Javascript
Flutter部件内部状态管理小结之实现Vue的v-model功能
2019/06/11 Javascript
[03:46]DOTA2英雄基础教程 维萨吉
2013/12/11 DOTA
跟老齐学Python之一个免费的实验室
2014/09/14 Python
Python、Javascript中的闭包比较
2015/02/04 Python
整理Python最基本的操作字典的方法
2015/04/24 Python
python数据结构之列表和元组的详解
2017/09/23 Python
Django使用Celery异步任务队列的使用
2018/03/13 Python
Python内置方法实现字符串的秘钥加解密(推荐)
2019/12/09 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
2020/04/17 Python
好药师网上药店:安全合法的网上药品零售药房
2017/02/15 全球购物
请介绍一下Ant
2016/07/22 面试题
无私奉献演讲稿
2014/09/04 职场文书
安全生产工作汇报材料
2014/10/28 职场文书
小学优秀教师事迹材料
2014/12/16 职场文书
2015年平安创建工作总结
2015/04/29 职场文书
2015年工程师工作总结
2015/04/30 职场文书
2016领导干部廉洁从政心得体会
2016/01/19 职场文书