当前位置: 首页 > 编程笔记 >

PHP中的use关键字概述

西门奇希
2023-03-14
本文向大家介绍PHP中的use关键字概述,包括了PHP中的use关键字概述的使用技巧和注意事项,需要的朋友参考一下

很多开源系统如osCommerce框架中,都会在其源码中找到use这个关键字,如osCommerce框架中就在index.php文件中出现了这段源码:

use osCommerce\OM\Core\Autoloader;
use osCommerce\OM\Core\OSCOM;

其实,php的use关键字是自php5.3以上版本引入的。它的作用是给一个外部引用起别名。这是命名空间的一个重要特性,它同基于unix的文件系统的为文件或目录创建连接标志相类似。

PHP命名空间支持三种别名方式(或者说引用):

1、为一个类取别名

2、为一个接口取别名

3、为一个命名空间取别名

这三种方式都是用 use 关键字来完成。下面是三种别名的分别举例:
//Example #1 importing/aliasing with the use operator

<?php
namespacefoo;
useMy\Full\ClassnameasAnother;

//thisisthesameasuseMy\Full\NSnameasNSname
useMy\Full\NSname;

//importingaglobalclass
useArrayObject;

$obj=newnamespace\Another;//instantiatesobjectofclassfoo\Another
$obj=newAnother;//instantiatesobjectofclassMy\Full\Classname
NSname\subns\func();//callsfunctionMy\Full\NSname\subns\func
$a=newArrayObject(array(1));//instantiatesobjectofclassArrayObject
//withoutthe"useArrayObject"wewouldinstantiateanobjectofclassfoo\ArrayObject
?>

注意的一点是,对于已命名的名字,全称就包含了分隔符,比如 Foo\Bar,而不能用FooBar,而“\Foo\Bar”这个头部的"\"是没必要的,也不建议这样写。引入名必须是全称,并且跟当前命名空间没有程序上的关联。

PHP也可以在同一行上申明多个,等同于上面的写法

<?php
useMy\Full\ClassnameasAnother,My\Full\NSname;

$obj=newAnother;//instantiatesobjectofclassMy\Full\Classname
NSname\subns\func();//callsfunctionMy\Full\NSname\subns\func
?>

还有值得一说的是,引入是在编译时执行的,因此,别名不会影响动态类,例如:

<?php
useMy\Full\ClassnameasAnother,My\Full\NSname;

$obj=newAnother;//instantiatesobjectofclassMy\Full\Classname
$a = 'Another';
$obj = New $a; // instantiates object of class Another
?>

这里由于给变量$a 赋值了 'Another',编译的时候,就将$a 定位到 Classname 了。

更详细的用法读者可以查阅php手册或关注本站后续相关文章。

 类似资料:
  • 我试图实现PhpPression转换一些文件,所以我有以下代码: 由于某种原因,这段代码正是导致500个内部服务器错误的原因。我已将错误报告设置为“全部”,但未显示任何错误。路径是正确的,我的根目录中有PhpOffice文件夹(public_html)和相应的子文件夹。 自动加载程序代码是这样加载的:

  • 本文向大家介绍Java final static abstract关键字概述,包括了Java final static abstract关键字概述的使用技巧和注意事项,需要的朋友参考一下 一,抽象类:abstract 1,只要有一个或一个以上抽象方法的类,必须用abstract声明为抽象类; 2,抽象类中可以有具体的实现方法; 3,抽象类中可以没有抽象方法; 4,抽象类中的抽象方法必须被它的子类实

  • Hyperledger Composer是一种编程模型,包含建模语言和一组API,可快速定义和部署业务网络和应用程序,允许参与者发出交易来交换资产的。 Hyperledger Composer组件 你可以使用我们基于浏览器的界面(称为Hyperledger Composer Playground)体验Hyperledger Composer。Playground可作为托管版本(无需安装)或本地安装

  • 问题内容: 是一样的“和”,是一样的PHP“或”? 我已经进行了一些测试,看来它们的行为相同。有什么区别吗? 如果不是,是否还有其他具有单词等效功能的PHP标志,您认为它使代码更易于阅读吗? 问题答案: 并且具有 更高的 优先级比和。更准确地说,它的优先级比赋值运算符()的优先级更高,而和则更低。

  • 问题内容: 我有一个带班级的文件。路径是: 我在此目录中有一个文件: 在这个文件中,我想实例化一个类。 我知道我可以使用或关键字将文件包含在类中: 但是我想不使用或导入类。我试图了解关键字的工作原理。我尝试了这些步骤,但没有任何效果: 它说: 关键字如何运作?我可以用它导入课程吗? 问题答案: 不包含任何内容。它只是将指定的名称空间(或类)导入当前范围 如果您想自动加载类-请阅读有关自动加载的信息

  • 本文向大家介绍概述C++中的 public protected private friend关键字的用法,包括了概述C++中的 public protected private friend关键字的用法的使用技巧和注意事项,需要的朋友参考一下 一个C++类中的变量如果如下关键字作为修饰符. 1. public: 程序的任何地方都可以访问. 2 protected: 只有类本身及其派生类和其友元函数