【前言】
本文总结下PHP命名空间相关知识点
【主体】
多个人开发项目,函数名很容易重复。用了类之后,类之间的方法名被类分开,重名也没关系。
但是当项目更大时,类名也有可能重复。此时就要用到命名空间,来避免重名。
注意:①命名空间语句必须顶行,且之前不可以有任何输出
案例:
<?php namespace name;//命名空间---相当于创建了一个文件夹 include 'two.php'; class Test1{ public function __construct(){ echo "666"; } } new Test1(); ?>
two.php:
<?php namespace name1; class Test1{ public function __construct(){ echo "333"; } } ?>
最终会输出666,也就是调用了one.php里的函数。
如果去掉命名空间语句,再次测试会发现报错提示:Fatal error: Cannot redeclare class Test1。无法重新声明Test1
这里如果想调用two.php里的同名函数怎么办呢?
①原理类似于Linux下的文件查询操作cd\...\...;②之前说过,命名空间相当于创建了一个文件夹,现在我们要通过cd来查看内部文件;③定向调用
//two.php里命名空间为name1,所以相当于在name1文件夹下查看文件 new \name1\Test();
所以,上例可以改为
<?php namespace name;//命名空间---相当于创建了一个文件夹 include 'mySql.class.php'; class Test{ public function __construct(){ echo "666"; } } new \name1\Test();//这时便会输出333 ?>
有了命名空间可以明确指出运用的类
上例继续修改
one.php:
use \name1\Test1; new Test1();
two.php:
<?php namespace name1; class Test1{//改名为Test1 public function __construct(){ echo "333"; } } ?>
但是这种写法需要修改文件,有时没有相应权限。所以这里我们可以用别名as
use \name1\Test as newName; new newName();//直接new()别名
这样便可以访问
注意:命名空间可以创建多层,调用时按照cd原理逐层读取即可。例如
one.php:
use \name1\one\two\three\Test as newName; new newName();
two.php:
<?php namespace name1\one\two\three; ?>
注意:
①命名空间声明位置必须位于首行;②声明后,其后的函数、类都将被封锁在命名空间里;
③引入其他页面后,自身空间不受干扰;④如果想明确使用某空间下的类,可以从根目录下逐层寻找读取,原理类似Linux的cd;
⑤若频繁使用某个空间下的类,可以先用use声明,然后as别名,避免冲突;⑥自动加载函数的参数,包含“空间路径\类名”
.
相关推荐
本篇将深入探讨PHP命名空间的使用和实例。 一、PHP命名空间的概念 PHP命名空间是自PHP 5.3版本引入的新特性,其主要作用是为了解决大型项目中的命名冲突问题。通过创建独立的命名空间,我们可以将相关的类、函数和...
命名空间在PHP中是一个至关重要的概念,自PHP 5.3版本引入,它提供了一种组织和管理代码的方式,有效地解决了代码中可能出现的命名冲突问题。通过命名空间,我们可以将相关的类、接口、函数和常量分组,类似于操作...
#### 一、PHP命名空间概述 PHP的命名空间(Namespace)是在PHP 5.3.0版本之后被引入的一个重要特性,它主要用于解决类名冲突的问题,并提供了更好的代码组织方式。命名空间允许开发者将相关的类、接口、函数和常量...
标题中的“一个轻量级的php命名空间感知自动加载生成器和phar归档生成器”指的是PHP开发中两个关键的工具。首先,我们要理解PHP的命名空间(Namespace)和自动加载(Autoloading)。命名空间是PHP 5.3引入的概念,...
PHP命名空间是一个重要的概念,它允许我们将代码分割成不同的部分,从而避免名称冲突,特别是当两个库使用了相同的类名或函数名时。命名空间的引入对于大型项目来说尤其重要,因为它能够帮助开发者组织和管理代码。 ...
PHP命名空间(Namespace)是在PHP5.3版本之后引入的一个功能,它为PHP提供了一种封装事物的方法,用于解决同名的类、函数或常量之间的冲突。这种机制类似于操作系统的目录结构,允许在不同的命名空间内存在同名的...
PHP命名空间是PHP5.3版本引入的一个重要特性,它的设计概念与C#中的命名空间类似,命名空间主要是为了解决在项目中类、函数和常量的名称冲突问题,它允许将代码分割成不同的部分,这样不同的开发者可以使用相同的...
本文实例讲述了PHP命名空间定义与用法。分享给大家供大家参考,具体如下: php的命名空间的样式跟linux的路径很相似。 我们使用文件的路径作为命名空间。 定义命名空间 MVC\Model\index.php代码 <?php ...
PHP命名空间(Namespace)是PHP5.3版本引入的一个新特性,它允许我们定义一个独立的区域来存放相关的类、函数和常量,以避免在全局空间中可能出现的命名冲突。命名空间在最初提出是在PHP6的计划中,但后来提前至...
本压缩包文件“修改微信支付sdk3.0为命名空间格式.zip”旨在将原始SDK的类文件转换为符合PHP命名空间规范的格式。 命名空间(Namespace)是PHP 5.3引入的一个特性,它的目的是为了解决在大型项目中避免类名冲突的...
本篇将深入解析PHP命名空间的概念、作用以及使用方法。 1. **什么是命名空间?** 命名空间是一种逻辑上的隔离机制,它为类、函数和常量提供了一个独立的作用域。可以将其形象地比喻为操作系统中的目录结构,每个...
本文实例讲述了PHP命名空间namespace用法。分享给大家供大家参考,具体如下: namespace(命名空间)相当于函数、类,划分了一个区域,这样子就使得在同个页面中可以require相同的类,使用相同名字的函数 : 在项目中...
### PHP命名空间的概念 在PHP中,命名空间是一种封装事物的方法。它允许我们使用完全相同的类名、函数名和常量名而不引起冲突,因为它们可以存在于不同的命名空间中。命名空间用来解决两个主要的问题:用户编写的...