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+AJAX实现无刷新注册(带用户名实时检测)
Dec 02 PHP
URL Rewrite的设置方法
Jan 02 PHP
PHP循环语句笔记(foreach,list)
Nov 29 PHP
PHP UTF8中文字符截断函数代码
Sep 11 PHP
PHP 登录记住密码实现思路
May 07 PHP
Linux编译升级php的详细方法
Nov 04 PHP
php中ob_get_length缓冲与获取缓冲长度实例
Nov 20 PHP
php操作mongoDB实例分析
Dec 29 PHP
PHP curl使用实例
Jul 02 PHP
php实现无限级分类(递归方法)
Aug 06 PHP
PHP使用Redis实现Session共享的实现示例
May 12 PHP
laravel validate 设置为中文的例子(验证提示为中文)
Sep 29 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+Oracle本地开发环境搭建方法详解
2019/04/01 PHP
广告显示判断
2006/08/31 Javascript
简单的前端js+ajax 购物车框架(入门篇)
2011/10/29 Javascript
解析DHTML,JavaScript,DOM,BOM以及WEB标准的描述
2013/06/19 Javascript
Javascript表格翻页效果实现思路及代码
2013/08/23 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
轻松创建nodejs服务器(7):阻塞操作的实现
2014/12/18 NodeJs
JavaScript实现简单的拖动效果
2016/07/02 Javascript
bootstrap-datetimepicker实现只显示到日期的方法
2016/11/25 Javascript
前端主流框架vue学习笔记第一篇
2017/07/26 Javascript
详解react服务端渲染(同构)的方法
2017/09/21 Javascript
Vue.js搭建移动端购物车界面
2020/06/28 Javascript
Vue2.0点击切换类名改变样式的方法
2018/08/22 Javascript
vue生成文件本地打开查看效果的实例
2018/09/06 Javascript
DatePickerDialog 自定义样式及使用全解
2019/07/09 Javascript
Node.js API详解之 console模块用法详解
2020/05/12 Javascript
vue中实现弹出层动画效果的示例代码
2020/09/25 Javascript
Python实现3行代码解简单的一元一次方程
2014/08/18 Python
利用Python的Django框架生成PDF文件的教程
2015/07/22 Python
Python聚类算法之凝聚层次聚类实例分析
2015/11/20 Python
Python实现多线程抓取网页功能实例详解
2017/06/08 Python
Python构建网页爬虫原理分析
2017/12/19 Python
浅谈Tensorflow模型的保存与恢复加载
2018/04/26 Python
Python静态类型检查新工具之pyright 使用指南
2019/04/26 Python
python实现启动一个外部程序,并且不阻塞当前进程
2020/12/05 Python
Python: glob匹配文件的操作
2020/12/11 Python
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
优衣库台湾官网:UNIQLO台湾
2019/02/01 全球购物
Java多态性的定义以及类型
2014/09/16 面试题
春节联欢会主持词
2014/03/24 职场文书
服务质量承诺书
2014/03/27 职场文书
带病坚持工作事迹
2014/05/03 职场文书
企业文化演讲稿
2014/05/20 职场文书
党员教师批评与自我批评发言稿
2014/10/15 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
创业计划书之酒吧
2019/12/02 职场文书