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
简单易用的计数器(数据库)
Oct 09 PHP
用PHP将网址字符串转换成超链接(网址或email)
May 25 PHP
PHP下使用CURL方式POST数据至API接口的代码
Feb 14 PHP
Ajax+PHP快速上手及简单应用说明
Jul 24 PHP
php实现的Timer页面运行时间监测类
Sep 24 PHP
yii实现图片上传及缩略图生成的方法
Dec 04 PHP
php中Ctype函数用法详解
Dec 09 PHP
举例讲解PHP面对对象编程的多态
Aug 12 PHP
PHP实现无限级分类(不使用递归)
Oct 22 PHP
PHP进程通信基础之信号量与共享内存通信
Feb 19 PHP
php实现生成code128条形码的方法详解
Jul 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+mcDropdown实现文件路径可在下拉框选择
2013/08/07 PHP
PHP保留两位小数并且四舍五入及不四舍五入的方法
2013/09/22 PHP
PHP 二维数组根据某个字段排序的具体实现
2014/06/03 PHP
PHP 使用redis简单示例分享
2015/03/05 PHP
PHP中使用Memache作为进程锁的操作类分享
2015/03/30 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
javascript 清除输入框中的数据
2009/04/13 Javascript
关于js datetime的那点事
2011/11/15 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
2014/06/15 Javascript
javascript中字符串拼接详解
2014/09/26 Javascript
JavaScript中的this关键字使用方法总结
2015/03/13 Javascript
jQuery+CSS3折叠卡片式下拉列表框实现效果
2015/11/02 Javascript
易被忽视的js事件问题总结
2016/05/14 Javascript
javascript读取文本节点方法小结
2016/12/15 Javascript
Bootstrap table右键功能实现方法
2017/02/20 Javascript
微信小程序支付前端源码
2018/08/29 Javascript
node中的session的具体使用
2018/09/14 Javascript
微信小程序使用Vant Weapp组件库的方法步骤
2019/08/01 Javascript
Vue axios 将传递的json数据转为form data的例子
2019/10/29 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
2019/11/21 Javascript
[01:08:43]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第一场 1月9日
2021/03/11 DOTA
Python 中字符串拼接的多种方法
2018/07/30 Python
python读取图片任意范围区域
2019/01/23 Python
python读取大文件越来越慢的原因与解决
2019/08/08 Python
PyTorch: 梯度下降及反向传播的实例详解
2019/08/20 Python
英国的屈臣氏:Boots博姿
2017/12/23 全球购物
马来西亚网上购物平台:ezbuy
2018/02/13 全球购物
工程业务员岗位职责
2013/12/31 职场文书
医学专业职业生涯规划范文
2014/02/05 职场文书
剪彩仪式主持词
2014/03/19 职场文书
门前三包责任书
2014/04/15 职场文书
幼儿园安全生产月活动总结
2014/07/05 职场文书
慰问信格式
2015/02/14 职场文书
人间正道是沧桑观后感
2015/06/15 职场文书
护士旷工检讨书
2015/08/15 职场文书
解决goland 导入项目后import里的包报红问题
2021/05/06 Golang