首页 >后端开发 >PHP问题 > 正文

php命名空间之如何定义空间?

原创2021-07-30 10:24:560667
本篇文章将开始介绍命名空间。命名空间是一种封装事物的方法,在很多地方都可以见到这种抽象概念。今天我们就来介绍介绍,有需要的可以参考一下。

首先,我们了解一下什么是命名空间。(有需要的可以参考PHP 命名空间

在PHP中,名称空间可以解决编写类库或应用程序(如类或函数),创建可重用代码时,所遇到的问题:

  • 用户编写的代码名称与PHP中的类/函数/常量或第三方类/函数/常量的名称发生冲突。

  • 为用户编写的很长的标识符名称创建一个别名(或简短),提高源代码的可读性。

PHP的命名空间提供了一种将相关的类、函数和常量组合到一起的途径。

现在就让我们正式进入今天的介绍,如何去定义一个命名空间。

首先我们来看一个小栗子。

<?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();
}
?>

我们观察一下,发现在这两段代码中,都有一个共同的特点,就是有关键词“namespace”,但是关键词后面却并不一样,这是什么原因呢?等我们学习了命名空间知识之后,就会知道啦。

默认情况下,所有常量、类和函数名都放在全局空间中,就像PHP支持的名称空间之前一样。

命名空间通过关键字namespace来声明。如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间。语法格式如下;

<?php  
// 定义代码在 'MyProject' 命名空间中  
namespace MyProject;  
 
// ... 代码 ...

并且,我们可以在同一个文件中定义不同的命名空间代码。但是,将全局非命名空间中的代码与命名空间中的代码组合时,只能使用大括号中的语法。全局代码必须用未命名的namespace语句括在大括号中。

同时,声明名称空间之前唯一有效的代码是定义源文件编码的declare语句。所有非PHP代码(包括空格)都不能出现在名称空间声明之前。

命名空间的命名就说到这里了,有其他想知道的,可以点击这个哦。→ →php视频教程

以上就是php命名空间之如何定义空间?的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

  • 相关标签:php
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 专题推荐

    作者信息

    醉折花枝作酒筹

    飞花飘絮,霓裳翩翩舞,几多情愫心飞扬。

    最近文章
    css如何设置指定网格的大小和位置388
    css如何定义网格线大小1107
    教你一招搞定css背景图的大小776
    推荐视频教程
  • PHP开发基础之语法篇PHP开发基础之语法篇
  • PHP开发基础之类与对象篇PHP开发基础之类与对象篇
  • 细说PHP(2021版)第三季细说PHP(2021版)第三季
  • 从0开始进入PHP的世界从0开始进入PHP的世界
  • 视频教程分类