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和MySql来与ODBC数据连接
Oct 09 PHP
简单示例AJAX结合PHP代码实现登录效果代码
Jul 25 PHP
收藏的PHP常用函数 推荐收藏保存
Feb 21 PHP
php 判断是否是中文/英文/数字示例代码
Sep 30 PHP
destoon实现公司新闻详细页添加评论功能的方法
Jul 15 PHP
Yii入门教程之Yii安装及hello world
Nov 25 PHP
php限制ip地址范围的方法
Mar 31 PHP
PHP实现通过get方式识别用户发送邮件的方法
Jul 16 PHP
Yii中Model(模型)的创建及使用方法
Dec 28 PHP
PHP数据库操作二:memcache用法分析
Aug 16 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
Oct 21 PHP
PHP 扩展Memcached命令用法实例总结
Jun 04 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
风格模板初级不完全修改教程
2006/10/09 PHP
PHP 文件上传后端处理实用技巧方法
2017/01/06 PHP
php根据命令行参数生成配置文件详解
2019/03/15 PHP
获取内联和链接中的样式(js代码)
2013/04/11 Javascript
从jquery的过滤器.filter()方法想到的
2013/09/29 Javascript
js判断url是否有效的两种方法
2014/03/04 Javascript
jquery淡化版banner异步图片文字效果切换图片特效
2014/04/08 Javascript
JavaScript事件委托用法分析
2015/01/24 Javascript
js实现tab切换效果实例
2015/09/16 Javascript
JS获取元素多层嵌套思路详解
2016/05/16 Javascript
jQuery EasyUI封装简化操作
2016/09/18 Javascript
JavaScript与ActionScript3两者的同性与差异性
2016/09/22 Javascript
Nodejs进阶:基于express+multer的文件上传实例
2016/11/21 NodeJs
详解angular中如何监控dom渲染完毕
2017/01/03 Javascript
js实现复选框的全选和取消全选效果
2017/01/03 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
2017/01/22 Javascript
js生成word中图片处理方法
2018/01/06 Javascript
js技巧之十几行的代码实现vue.watch代码
2018/06/09 Javascript
Vue 监听列表item渲染事件方法
2018/09/06 Javascript
浅谈webpack性能榨汁机(打包速度优化)
2019/01/09 Javascript
用Python编写一个简单的Lisp解释器的教程
2015/04/03 Python
Python基于ThreadingTCPServer创建多线程代理的方法示例
2018/01/11 Python
Django学习笔记之ORM基础教程
2018/03/27 Python
TensorFlow利用saver保存和提取参数的实例
2018/07/26 Python
对Tensorflow中的变量初始化函数详解
2018/07/27 Python
python利用tkinter实现屏保
2019/07/30 Python
python实现飞行棋游戏
2020/02/05 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
H5 canvas中width、height和style的宽高区别详解
2018/11/02 HTML / CSS
Super-Pharm波兰:药房和香水在一个地方
2020/08/18 全球购物
Silk Therapeutics官网:清洁、抗衰老护肤品
2020/08/12 全球购物
经济管理专业毕业生推荐信
2013/11/11 职场文书
锦旗标语大全
2014/06/23 职场文书
2015大学生自我评价范文
2015/03/03 职场文书
Python中第三方库Faker的使用详解
2022/04/02 Python
vue route新窗口跳转页面并且携带与接收参数
2022/04/10 Vue.js