💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
#### 命名空间的由来 同时导入两个php文件,两个文件都包含相同的方法名或者类名。此时会报错,为了解决这种问题,php引入了命名空间的概念。 #### 定义命名空间 namespace放到第一行 同一个目录下的想同类,可以定义不同的命名空间。 统一目录下的两个1.php 和 2.php ~~~ namespace venter class Imooc(){ } function ilikeImooc(){ } const IMOOC="常量"; namespace venter\session class Imooc(){ } //函数 function ilikeImooc(){ } ~~~ c.php文件内容,不会冲突 ~~~ require 1.php; require 2.php; new venter\Imooc(); venter\ilikeImooc(); new venter\session\Imooc(); venter\session\ilikeImooc(); ~~~ #### 使用use关键字导入命名空间下的类 ~~~ use Venter\session\Imooc; //导入Venter\session空间下的Imooc类。 use Venter\Imooc as Imooc2; //导入Venter空间下的Imooc类,并使用别名 Imooc2. use function Venter\session\ilikeImooc; //导入命名空间下的函数 use const Venter\session\IMOOC; //导入命名空间下的常量 ~~~ #### 全局命名空间 ~~~ class ImoocTest(){ } function Test2(){ } const TEST3 = "test3"; ~~~ 没有定义命名空间的类 默认存在于全局命名空间,此时调用需要使用反斜杠调用。 但是函数和常量可以不加反斜杠,因为函数和常量发现当前命名空间不存在的话,会默认去全局命名空间寻找 `new \ImoocTest();`