小编给大家分享一下php命名空间之怎么定义空间,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
首先,我们了解一下什么是命名空间。(有需要的可以参考PHP 命名空间)
在PHP中,名称空间可以解决编写类库或应用程序(如类或函数),创建可重用代码时,所遇到的问题:
用户编写的代码名称与PHP中的类/函数/常量或第三方类/函数/常量的名称发生冲突。
为用户编写的很长的标识符名称创建一个别名(或简短),提高源代码的可读性。
PHP的命名空间提供了一种将相关的类、函数和常量组合到一起的途径。
现在就让我们正式进入今天的介绍,如何去定义一个命名空间。
首先我们来看一个小栗子。
<?phpdeclare(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命名空间之怎么定义空间”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!