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 中include()与require()的对比
Oct 09 PHP
php csv操作类代码
Dec 14 PHP
PHP中基本符号及使用方法
Mar 23 PHP
浅析Apache中RewriteCond规则参数的详细介绍
Jun 30 PHP
php使用qr生成二维码的示例分享
Jan 20 PHP
PHP goto语句简介和使用实例
Mar 11 PHP
php实现httpclient类示例
Apr 08 PHP
PHP中的插件机制原理和实例
Jul 08 PHP
Yii实现显示静态页的方法
Apr 25 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
Jun 20 PHP
php实现的读取CSV文件函数示例
Feb 07 PHP
PHP实现上传图片到数据库并显示输出的方法
May 31 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 文件缓存函数
2011/10/08 PHP
深入PHP中的HashTable结构详解
2013/06/13 PHP
PHP统计二维数组元素个数的方法
2013/11/12 PHP
主流PHP框架的优缺点对比分析
2014/12/25 PHP
php中动态变量用法实例
2015/06/10 PHP
PHP代码实现爬虫记录――超管用
2015/07/31 PHP
PHP大文件切割上传并带进度条功能示例
2019/07/01 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
2019/08/27 PHP
另类调用flash无须激活的方法
2006/12/27 Javascript
查找页面中所有类为test的结点的方法
2014/03/28 Javascript
Javascript中的关键字和保留字整理
2014/10/16 Javascript
JavaScript获取网页支持表单字符集的方法
2015/04/02 Javascript
jQuery实现打开页面渐现效果示例
2016/07/27 Javascript
js 获取当前web应用的上下文路径实现方法
2016/08/19 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
2016/12/02 Javascript
Angular.js项目中使用gulp实现自动化构建以及压缩打包详解
2017/07/19 Javascript
JS实现下拉菜单列表与登录注册弹窗效果
2017/08/10 Javascript
详解Vue前端生产环境发布配置实战篇
2019/05/07 Javascript
vue项目打包后请求地址错误/打包后跨域操作
2020/11/04 Javascript
Vue 实现一个简单的鼠标拖拽滚动效果插件
2020/12/10 Vue.js
[06:45]2018DOTA2亚洲邀请赛 4.5 SOLO赛 Sccc vs Maybe
2018/04/06 DOTA
高效测试用例组织算法pairwise之Python实现方法
2017/07/19 Python
基于Python中numpy数组的合并实例讲解
2018/04/04 Python
Python中分支语句与循环语句实例详解
2018/09/13 Python
Django实现celery定时任务过程解析
2020/04/21 Python
pytorch读取图像数据转成opencv格式实例
2020/06/02 Python
浅谈HTML5新增和废弃的标签
2019/04/28 HTML / CSS
优衣库台湾官网:UNIQLO台湾
2019/02/01 全球购物
如何将整数int转换成字串String
2014/03/21 面试题
几个SQL的面试题
2014/03/08 面试题
写自荐信的注意事项
2014/03/09 职场文书
高一新生军训方案
2014/05/12 职场文书
《春酒》教学反思
2016/02/22 职场文书
2016年中学端午节主题活动总结
2016/04/01 职场文书
python 实现德洛内三角剖分的操作
2021/04/22 Python
Redis 操作多个数据库的配置的方法实现
2022/03/23 Redis