php命名空间use关键字怎么用

教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

什么是命名空间?

从广义上来说,命名空间是一种封装事物的方法,在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。

命名空间的定义

php 中命名空间(namespace)是在 PHP5.3 中加入的,如果你了解过 c++ 的话,那命名空间就不算什么新事物了。不过命名空间在 PHP 当中还是相当重要的。

PHP 命名空间可以解决以下两类问题:

  • 用户编写的代码与 PHP 内部的类/函数/常量或第三方类/函数/常量之间的命名冲突;

  • 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,以提高源代码的可读性。

定义命名空间(使用关键字 namespace)

虽然任意合法的 PHP 代码都可以包含在命名空间中,但只有类(包括抽象类和 traits)、接口、函数和常量等类型的代码受命名空间的影响。

命名空间的定义需要通过关键字 namespace 来声明,语法格式如下:

namespace 命名空间名;

【示例】下面我们来演示一下如何定义了命名空间:

<?php
    namespace MyProject;    // 定义名为 MyProject 的命名空间。
    const CONNECT_OK = 1;
    class Myclass {
        
    }
    function Myfunc() {
        
    }
?>

在声明命名空间之前除了用于定义源文件编码方式的 declare 语句外,所有非 PHP 代码(包括空白符)都不能出现在命名空间声明之前。

使用命名空间:别名/导入

PHP 允许通过别名引用或导入的方式来使用外部的命名空间,这是命名空间的一个重要特征。这有点类似于在类 unix 文件系统中可以创建对其它的文件或目录的符号连接。

使用 use 关键字可以实现命名空间的导入,从 PHP5.6 开始允许导入函数和常量,并为它们设置别名。语法格式如下:

use namespace;

在 PHP 中,别名是通过操作符 use 与 as 来实现的,语法格式如下:

use 命名空间 as 别名;

【示例】使用 use 操作符导入和使用别名。

<?php
    namespace foo;
    use My\Full\Classname as Another;
    // 下面的例子与 use My\Full\NSname as NSname 相同
    use My\Full\NSname;
    // 导入一个全局类
    use ArrayObject;
    // 导入一个函数
    use function My\Full\functionName;
    // 导入一个函数并定义别名
    use function My\Full\functionName as func;
    // 导入一个常量
    use const My\Full\CONSTANT;
    $obj = new namespace\Another;   // 实例化 foo\Another 对象
    $obj = new Another;             // 实例化 My\Full\Classname 对象
    NSname\subns\func();            // 调用 My\Full\NSname\subns\func 函数
    $a = new ArrayObject(array(1)); // 实例化 ArrayObject 对象
                                    // 如果不使用 "use \ArrayObject" ,则实例化一个 foo\ArrayObject 对象
    func();                         // 调用 My\Full\functionName 函数
    echo CONSTANT;                  // 打印 My\Full\CONSTANT 常量
?>

注意:对命名空间中的名称(包含命名空间分隔符的完全限定名称,如 Foo\Bar ,以及相对的不包含命名空间分隔符的全局名称,如 FooBar)来说,前导的反斜杠是不必要的也是不推荐的,因为导入的名称必须是完全限定的,不会根据当前的命名空间作相对解析。

为了简化操作,PHP 还支持在一行中导入多个命名空间,中间使用,隔开,示例代码如下:

<?php
    use My\Full\Classname as Another, My\Full\NSname;
    $obj = new Another;     // 实例化 My\Full\Classname 对象
    NSname\subns\func();    // 调用 My\Full\NSname\subns\func 函数
?>

导入操作是编译执行的,但动态的类名称、函数名称或常量名称则不是。

<?php
    use My\Full\Classname as Another, My\Full\NSname;
    $obj = new Another; // 实例化一个 My\Full\Classname 对象
    $a = 'Another';
    $obj = new $a;      // 实际化一个 Another 对象
?>

另外,导入操作只影响非限定名称和限定名称。完全限定名称由于是确定的,故不受导入的影响。

--结束END--

本文标题: php命名空间use关键字怎么用

本文链接: https://www.lsjlt.com/news/231.html (转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢

  • php命名空间use关键字怎么用

    在php中,use关键字可以用来导入命名空间,语法“use namespace;”;也可用来导入函数和常量,并为它们设置别名,语法“use 命名空间 as 别名;”。
    阅读数:690 php 命名空间 use关键字
  • javascript、php关键字搜索函数怎么用

    这篇文章给大家分享的是有关javascript、php关键字搜索函数怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。javascript:a. 代码:/*@desc:js搜索函数,可用于关键字匹配@par
    阅读数:726 javascript php
  • php怎么实现关键字描红

    php实现关键字描红的方法:1、获取从文本框输入的关键字文字;2、连接数据库并进行查询;3、把查询到的结果循环显示出来;4、用str_ireplace函数将其中的关键字文字替换成带有红色的文字即可。
    阅读数:179 PHP 关键字 描红
  • 哪个不是php的关键字

    string不是php的关键字,php的关键字有:1、abstract;2、and;3、array();4、as;5、break;6、callable;7、case;8、catch;9、class;10、clone等等。
    阅读数:392 php
  • php关键字什么意思

    PHP关键字的意思是在语法中有特殊含义的字符;关键字是用来标识文件中各个记录的特定数据项目的值,PHP关键字表示已经被PHP语言本身使用,不能作为其他用途使用的字,例如Private、Protected、Public、static、Final、Abstract等等。本文操作环境:Windows10系统、PHP8.1版、Dell G3电脑php关键字什么意思所谓关键字就是已被语言本身使用, 不能作其它
    阅读数:767 php
  • php怎么实现关键字搜索功能

    php实现关键字搜索功能的方法:1、创建数据库;2、获取输入的关键字;3、进行数据库连接;4、将书名中或者描述中包含关键字文字的记录查询出来,并把查询到的结果循环显示出来即可。
    阅读数:924 PHP 关键字 搜索 描红
  • php中function关键字的用法是什么

    function是php中的一个关键字,用于用户声明自定义函数,语法为“function 函数名([参数1, 参数2, ..., 参数n]){函数体;[return 返回值;]}”。
    阅读数:729 php function 关键字
  • PHP中自动加载autoload和命名空间怎么用

    小编给大家分享一下PHP中自动加载autoload和命名空间怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!先给大家说下什么是命名空间。“什么是命名空间?从广
    阅读数:636 php autoload
  • 详解PHP中的命名空间

    这篇文章主要介绍了PHP中的命名空间的相关资料,帮助大家更好的理解和学习使用PHP,感兴趣的朋友可以了解下
    阅读数:558 PHP 命名空间
  • php use报错怎么办

    php use报错的解决办法:1、打开相应的代码文件;2、使用require引入文件;3、使用use引入命名空间文件即可。
    阅读数:363 php use
  • php命名空间举例介绍使用方法

    从广义上来说,命名空间是一种封装事物的方法,在很多地方都可以见到这种抽象概念。PHP中命名空间(namespace)是在PHP5.3中加入的,如果你了解过C++的话,那命名空间就不算什么新事物了。不过命名空间在PHP当中还是相当重要的
  • 如何理解PHP核心特性命名空间

    在命名空间提出之前,不同的组件很容易碰到命名的冲突,例如Request、Response等常见的命名。本文将带你理解PHP的核心特性命名空间。
    阅读数:803 php 命名空间
  • php use类找不到怎么办

    php use类找不到的解决办法:1、打开相应的PHP文件;2、将use语句插入每个文件;3、执行“class_alias('RedBean_Facade', 'R');”代码即可。
    阅读数:606 use php
  • dedecms文章关键字(自动内链)php5.5以上版本urf-8失效的解决方法

    找到include/arc.archives.class.php在里面需要修改两次地方在1230行// 这里可能会有错误if (version_compare(PHP_VERSION, '5.5.0', '>=')){$body =
    阅读数:261
  • PHP中php://input怎么用

    php://input可以读取没有处理过的POST数据,其使用方法如“$xmldata = file_get_contents("php://input");”,用于接收xml数据。
    阅读数:735 PHP 输入流
  • php serialize()怎么用

    在PHP中,serialize()用于序列化对象或数组,将其转换为一个可以存储的字符串,语法“serialize($value)”。使用serialize()函数序列化对象后,可以很方便的将它传递给其他需要它的地方,且其类型和结构不会改变。
    阅读数:335 php serialize()
  • php parser怎么用

    “php parser”用于生成模板代码,或者使用其生成的抽象语法树进行静态分析;“php parser”是有nikic开发的一款PHP抽象语法树解析工具,同时兼顾接口易用,结构简介,工具链完善等诸多优点。本文操作环境:Windows10系统、PHP8.1版、Dell G3电脑php parser怎么用PHP Parser是由 nikic 开发的一款php抽象语法树(AST)解析工具。PHP Par
    阅读数:308 php
  • 怎么修改云空间php.ini

    修改云空间php.ini的方法:1、登录云虚拟主机管理页面;2、单击对应操作列的管理;3、选择“高级环境设置>PHP.INI设置”;4、修改PHP.INI;5、确认修改即可。
    阅读数:141 php.ini
  • php中continue怎么用

    在php中,continue关键字是用在循环结构中的,可以控制程序放弃本次循环中continue语句之后的代码并进行下一次循环;continue还可以接受一个可选的数字参数来决定跳过几重循环的循环末尾,默认值是1,即跳到当前循环的末尾。
    阅读数:118 php continue
  • php中数组怎么用

    这篇文章将为大家详细讲解有关php中数组怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 //1 将key值大小替换 $arr = array(a => 1, b => 2, C
    阅读数:824 php