`

PHP命名空间

    博客分类:
  • PHP
PHP 
阅读更多

【前言】

    本文总结下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命名空间的概念 PHP命名空间是自PHP 5.3版本引入的新特性,其主要作用是为了解决大型项目中的命名冲突问题。通过创建独立的命名空间,我们可以将相关的类、函数和...

    php命名空间小结

    命名空间在PHP中是一个至关重要的概念,自PHP 5.3版本引入,它提供了一种组织和管理代码的方式,有效地解决了代码中可能出现的命名冲突问题。通过命名空间,我们可以将相关的类、接口、函数和常量分组,类似于操作...

    PHP 命名空间详解.md

    #### 一、PHP命名空间概述 PHP的命名空间(Namespace)是在PHP 5.3.0版本之后被引入的一个重要特性,它主要用于解决类名冲突的问题,并提供了更好的代码组织方式。命名空间允许开发者将相关的类、接口、函数和常量...

    一个轻量级的php命名空间感知自动加载生成器和phar归档生成器_PHP_Smarty_下载.zip

    标题中的“一个轻量级的php命名空间感知自动加载生成器和phar归档生成器”指的是PHP开发中两个关键的工具。首先,我们要理解PHP的命名空间(Namespace)和自动加载(Autoloading)。命名空间是PHP 5.3引入的概念,...

    PHP 命名空间原理与用法详解

    PHP命名空间是一个重要的概念,它允许我们将代码分割成不同的部分,从而避免名称冲突,特别是当两个库使用了相同的类名或函数名时。命名空间的引入对于大型项目来说尤其重要,因为它能够帮助开发者组织和管理代码。 ...

    PHP命名空间(Namespace)的使用详解

    PHP命名空间(Namespace)是在PHP5.3版本之后引入的一个功能,它为PHP提供了一种封装事物的方法,用于解决同名的类、函数或常量之间的冲突。这种机制类似于操作系统的目录结构,允许在不同的命名空间内存在同名的...

    PHP命名空间(namespace)的动态访问及使用技巧

    PHP命名空间是PHP5.3版本引入的一个重要特性,它的设计概念与C#中的命名空间类似,命名空间主要是为了解决在项目中类、函数和常量的名称冲突问题,它允许将代码分割成不同的部分,这样不同的开发者可以使用相同的...

    PHP命名空间定义与用法实例分析

    本文实例讲述了PHP命名空间定义与用法。分享给大家供大家参考,具体如下: php的命名空间的样式跟linux的路径很相似。 我们使用文件的路径作为命名空间。 定义命名空间 MVC\Model\index.php代码 &lt;?php ...

    PHP命名空间(Namespace)简明教程

    PHP命名空间(Namespace)是PHP5.3版本引入的一个新特性,它允许我们定义一个独立的区域来存放相关的类、函数和常量,以避免在全局空间中可能出现的命名冲突。命名空间在最初提出是在PHP6的计划中,但后来提前至...

    修改微信支付sdk3.0为命名空间格式.zip

    本压缩包文件“修改微信支付sdk3.0为命名空间格式.zip”旨在将原始SDK的类文件转换为符合PHP命名空间规范的格式。 命名空间(Namespace)是PHP 5.3引入的一个特性,它的目的是为了解决在大型项目中避免类名冲突的...

    php命名空间学习详解

    本篇将深入解析PHP命名空间的概念、作用以及使用方法。 1. **什么是命名空间?** 命名空间是一种逻辑上的隔离机制,它为类、函数和常量提供了一个独立的作用域。可以将其形象地比喻为操作系统中的目录结构,每个...

    PHP命名空间namespace用法实例分析

    本文实例讲述了PHP命名空间namespace用法。分享给大家供大家参考,具体如下: namespace(命名空间)相当于函数、类,划分了一个区域,这样子就使得在同个页面中可以require相同的类,使用相同名字的函数 : 在项目中...

    PHP命名空间用法实例分析

    ### PHP命名空间的概念 在PHP中,命名空间是一种封装事物的方法。它允许我们使用完全相同的类名、函数名和常量名而不引起冲突,因为它们可以存在于不同的命名空间中。命名空间用来解决两个主要的问题:用户编写的...

Global site tag (gtag.js) - Google Analytics