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

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

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

PHP 命名空间支持 有两种使用别名或导入方式:为类名称使用别名,或为命名空间名称使用别名。注意PHP不支持导入函数或常量。

在PHP中,别名是通过操作符 use 来实现的. 下面是一个使用所有可能的三种导入方式的例子:

Example #1 使用use操作符导入/使用别名

<?php
namespace foo;
use My\Full\Classname as Another;

// 下面的例子与 use My\Full\NSname as NSname 相同
use My\Full\NSname;

// 导入一个全局类
use \ArrayObject;

$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 对象
?>

注意对命名空间中的名称(包含命名空间分隔符的完全限定名称如 Foo\Bar以及相对的不包含命名空间分隔符的全局名称如 FooBar)来说,前导的反斜杠是不必要的也不允许有反斜杠,因为导入的名称必须是完全限定的,不会根据当前的命名空间作相对解析。 Note that for namespaced names (fully qualified namespace names containing namespace separator, such as Foo\Bar as opposed to global names that do not, such as FooBar), the leading backslash is unnecessary and not allowed, as import names must be fully qualified, and are not processed relative to the current namespace.

为了简化操作,PHP还支持在一行中使用多个use语句

参考php.net

http://php.net/manual/zh/language.namespaces.importing.php

时间: 2025-01-16 19:34:42

使用命名空间:别名/导入的相关文章

7.4 命名空间别名

7.4.1 限定的命名空间别名 1 using WinForm = System.Windows.Forms; 2 3 namespace Test01 4 { 5 class WinForm { } 6 class Program 7 { 8 static void Main(string[] args) 9 { 10 Console.WriteLine(typeof(WinForm::Button)); 11 Console.ReadKey(); 12 } 13 } 14 } 7.4.2 全

PHP使用命名空间:别名/导入(Aliasing/Importing)

1.导入,就是使用use操作符 2.在一个类中导入了另一个类之后,当前的命名空间仍然是当前类的命名空间 3.注意对命名空间中的名称(包含命名空间分隔符的完全限定名称如 Foo\Bar以及相对的不包含命名空间分隔符的全局名称如 FooBar)来说,前导的反斜杠是不必要的也不推荐的,因为导入的名称必须是完全限定的,(也就是说use时的名称必须是完全限定的,这是默认的.因此不要带"\")不会根据当前的命名空间作相对解析. 上图的extend,对名称的解析方法,和new时是一样的,如下图 4.

Resharper 设置引用命名空间别名

设置Resharper: 下图中标记2的作用:如果勾选了,则using 会放到namespace 里面, namespace  WCF.EF.Entity { using System.ServiceModel; } 下图标记3如果勾选了,如果两个不同命名空间下都有类Person ,比如:(WCF.EF.Entity.Person  后台WCF服务中的数据契约    MVC.Model.Person 前台MVC中的ViewModel)则会生成别名: using Person = WCF.EF.E

c# 命名空间别名

如果命名空间比较长的话,并且在程序中经常使用,就可以用using来设置命名空间的别名 ,C#引入了别名机制 缩短程序员开发时间如: using   NSSerialize = System.ComponentModel .Design .Serialization; ....... NSSerialize .CodeDomSerializer cdomSrlzr; //相当于 System.ComponentModel .Design .Serialization .CodeDomSeriali

第2章 C#语言基础

C#语言基础本章将介绍一些C#语言的基础知识.本章和接下来的两章中的所有程序和代码片段都可以作为交互式示例在LINQPad中运行.阅读本书时使用这些示例可以加快你的学习进度.在LINQPad中编辑执行这些示例可以立即看到结果,无须在Visual Studio中建立项目和解决方案.若要下载这些示例,请点击LINQPad中的Samples选项卡,然后点击“Download more samples”.LINQPad是免费程序,详见http://www.linqpad.net 2.1 第一个C#程序

PHP命名空间规则解析及高级功能

日前发布的PHP 5.3中,最重要的一个新特性就是命名空间的加入.本文介绍了PHP命名空间的一些术语,其解析规则,以及一些高级功能的应用,希望能够帮助读者在项目中真正使用命名空间. 在这里中我们介绍了PHP命名空间的用途和namespace关键字,在这篇文章中我们将介绍一下use命令的使用以及PHP如何解析命名空间的名字的. 为了便于对比,我定义了两个几乎一样的代码块,只有命名空间的名字不同. < ?php // application library 1 namespace App\Lib1;

Namespacing in PHP (php 中使用命名空间)

最近学习一下php的命名空间,中文文档不多,搜到一篇英文的,讲的还蛮系统的,特此翻译一下,以备以后查阅,大家有什么高见或更深刻或者 更悟透的见解希望能不吝赐教,晚辈感激不尽. 原文: http://code.tutsplus.com/tutorials/namespacing-in-php--net-27203 关于PHP对命名空间的支持,这走过了一段崎岖的历程.感谢的是,从PHP5.3起,加入了对命名空间.php的代码结构也因此提升了了许多.但是,我们究竟该怎样使用命名空间呢? 一.什么是命名

PHP 面向对象编程和设计模式 (5) - PHP 命名空间的使用及名称解析规则

PHP高级程序设计 学习笔记 2014.06.12 命名空间概述 PHP 在 5.3.0 以后的版本开始支持命名空间.什么是命名空间?从广义上来说,命名空间是一种封装事物的方法.在很多地方都可以见到这种抽象概念.在PHP中,命名空间用来解决在编写类库或应用程序时创建可重用的代码如类或函数时碰到的两类问题: 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突. 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性. PH

PHP中的命名空间

概述 命名空间的作用是解决命名冲突 定义命名空间 虽然任意合法的PHP代码都可以包含在命名空间中,但只有以下类型的代码受命名空间的影响,它们是:类(包括抽象类和traits).接口.函数和常量. 命名空间通过关键字namespace 来声明.如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间,除了一个以外:declare关键字. 在声明命名空间之前唯一合法的代码是用于定义源文件编码方式的 declare 语句.另外,所有非 PHP 代码包括空白符都不能出现在命名空间的声明之前 同一