(PHP 5 >= 5.3.0, PHP 7)

也可以在同一个文件中定义多个命名空间。在同一个文件中定义多个命名空间有两种语法形式。

Example #1 定义多个命名空间,简单组合语法

<?php
namespace MyProject;const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }namespace AnotherProject;const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
?>

不建议使用这种语法在单个文件中定义多个命名空间。建议使用下面的大括号形式的语法。

Example #2 定义多个命名空间,大括号语法

<?php
namespace MyProject {const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}namespace AnotherProject {const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}
?>

在实际的编程实践中,非常不提倡在同一个文件中定义多个命名空间。这种方式的主要用于将多个 PHP 脚本合并在同一个文件中。

将全局的非命名空间中的代码与命名空间中的代码组合在一起,只能使用大括号形式的语法。全局代码必须用一个不带名称的 namespace 语句加上大括号括起来,例如:

Example #3 定义多个命名空间和不包含在命名空间中的代码

<?php
namespace MyProject {const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}namespace { // global code
session_start();
$a = MyProject\connect();
echo MyProject\Connection::start();
}
?>

除了开始的declare语句外,命名空间的括号外不得有任何PHP代码。

Example #4 定义多个命名空间和不包含在命名空间中的代码

<?php
declare(encoding='UTF-8');
namespace MyProject {const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}namespace { // 全局代码
session_start();
$a = MyProject\connect();
echo MyProject\Connection::start();
}
?>

在同一个文件中定义多个命名空间相关推荐

  1. 请确保此代码文件中定义的类与“inherits”属性匹配,并且该类扩展的基类(例如Page 或UserControl)是正确的。...

    编译ASP.NET时,提示"请确保此代码文件中定义的类与"inherits"属性匹配,并且该类扩展的基类(例如Page 或UserControl)是正确的.", ...

  2. 能否用痰盂盛饭——谈谈在头文件中定义外部变量

    能否用痰盂盛饭--谈谈在头文件中定义外部变量 - garbageMan - 博客园 能否用痰盂盛饭--谈谈在头文件中定义外部变量 "能否用痰盂盛饭"并非是一个技术问题,而是一个哲学 ...

  3. mybatis在关联映射中,引入外部xml文件中定义的对象

    2019独角兽企业重金招聘Python工程师标准>>> association标签 在mybatis中,关联映射是通过association标签实现的. Lottery2Rule对象 ...

  4. C++中头文件中定义的变量

    1.在头文件.h中定义static变量,如: static int x;其实就等效于每个引用该头文件的源文件中,定义一个变量名为x的整型静态全局变量,每个文件中的x变量均属于本源文件,各文件中的互不相 ...

  5. c语言头文件中定义inline static相关函数的优劣

    头文件中常见static inline函数,于是思考有可能遇到的问题,如头文件经常会被包含会不会产生很多副本?网上说法不一.于是自己验证.经过arm-none-eabi-gcc下测试后得出结论. in ...

  6. 编写一个头文件,头文件中定义一个宏cube(x)用于求一个数的平方

    <程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p145 7.1.2 上级实训内容 [实现内容17]编写一个头文件,头文件中定义一个宏cube(x)用于 ...

  7. C++ 在一个cpp文件中使用另一个cpp文件中定义的函数

    C++ 在一个cpp文件中 使用另一个cpp文件中定义的函数 建立一个console项目 头文件 cpp文件 main.cpp 建立一个console项目 以dev为例,在[文件][新建][项目],新 ...

  8. 请确保此代码文件中定义的类与“inherits”属性匹配.并且该类扩展的基类(例如 Page 或 UserControl)是正确...

    遇到这个问题 特此记录一下 由于copy   aspx页面 引起的 copy之后   类名实原来那个的跟 你现在的文件名不一样LoginAPI.aspx public partial class yu ...

  9. wordpress上传文件报错的解决方法(413 Request Entity Too Large、超过upload_max_filesize文件中定义的php.ini值)

    报错:413 Request Entity Too Large 问题nginx是限制上传大小,解决方法如下: 打开nginx配置文件 nginx.conf, 路径一般是:/etc/nginx/ngin ...

最新文章

  1. 在IOS开发中根据(id)sender获取UIButton的信息
  2. CSS 禁止文字选中
  3. 【数据竞赛】“达观杯”文本智能处理挑战赛4
  4. NYOJ 685 查找字符串 字典树
  5. 利用Linq在RadCombobox中输出分类后的数据
  6. 栈的应用——表达式求值(双栈)
  7. 韦氏评级:担心比特币近期价格走势的人都过于关注短期
  8. 【论文】 NLP中命名实体识别从机器学习到深度学习的代表性研究
  9. C++ Primer 学习笔记_98_特殊的工具和技术 --优化内存分配
  10. 新媒体活动策划方案要点
  11. 3月25日E盾网络验证最新修复一机一码E盾网络验证成品源码加密系统
  12. 写文献综述的28个要点
  13. 我的世界java版动作优化_我的世界动作优化模组
  14. linux虚拟机克隆mac地址冲突,虚拟机下linux迁移造成MAC地址异常处理办法(示例代码)...
  15. 网易 UI 自动化工具 Airtest
  16. 按键精灵制作自用游戏脚本所需的简单操作
  17. java拆分_Java 拆分 PDF 文档
  18. VR全景拍摄如何拍摄?如何使用拍摄器材?
  19. GPU显存占满利用率GPU-util奇低
  20. ICSharpCode.SharpZipLib压缩的文件不能解压的原因

热门文章

  1. 微生物组文献1采用FimH拮抗物选择性抑制尿路致病性大肠杆菌
  2. R语言进行dataframe数据内连接(Inner join):使用R原生方法、data.table、dplyr等方案
  3. R语言Kmeans聚类、抽取聚类簇:fpc包的kmeansruns函数通过Calinski-Harabasz准则和平均轮廓系数(ASW)为Kmeans选择最优的聚类K值、并与层次聚类的最优K值进行比较
  4. R语言ggplot2可视化绘制带有双y轴(double y axis)的分面图(facet、facet_grid)
  5. R语言dplyr包combine()函数实现数据拼接(concatenate)实战
  6. python字典(dict)+常用方法操作+列表、元组、集合、字典的互相转换
  7. tensorflow.python.framework.errors_impl.InvalidArgumentError: 2 root error(s) found.
  8. linux的iso镜像机没有redis,在Linux系统上安装Redis【避坑篇】
  9. NGS的测序仪和相关技术时间轴 NGS相关数据库和项目时间轴
  10. java用for循环查询数据_使用for循环结果创建数据框