PHP中的use关键字概述

 更新时间:2014年07月23日 08:52:20   投稿:shichen2014  
这篇文章主要介绍了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手册或关注本站后续相关文章。

相关文章

  • 浅谈php中mysql与mysqli的区别分析

    浅谈php中mysql与mysqli的区别分析

    本篇文章是对php中mysql与mysqli的区别进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP贪婪算法解决0-1背包问题实例分析

    PHP贪婪算法解决0-1背包问题实例分析

    这篇文章主要介绍了PHP贪婪算法解决0-1背包问题,实例分析了贪婪算法的原理与背包问题的实现技巧,需要的朋友可以参考下
    2015-03-03
  • PHP的substr_replace将指定两位置之间的字符替换为*号

    PHP的substr_replace将指定两位置之间的字符替换为*号

    PHP的substr_replace将指定两位置之间的字符替换为*号的代码,需要的朋友可以参考下。
    2011-05-05
  • Thinkphp事务操作实例(推荐)

    Thinkphp事务操作实例(推荐)

    下面小编就为大家带来一篇Thinkphp事务操作实例(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • phpstudy的安装及ThinkPHP框架的搭建图文讲解

    phpstudy的安装及ThinkPHP框架的搭建图文讲解

    这篇文章主要介绍了phpstudy的安装及ThinkPHP框架的搭建图文讲解,步骤描述的很清楚,有不会使用phpstudy或者ThinkPHP框架搭建的同学可以深入研究下
    2021-01-01
  • PHPEXCEL 使用小记

    PHPEXCEL 使用小记

    下面的文章主要是介绍基于PHPEXCEL实现的一些excel的操作实现代码,需要的朋友可以参考下
    2013-01-01
  • PHP将进程作为守护进程的方法

    PHP将进程作为守护进程的方法

    这篇文章主要介绍了PHP将进程作为守护进程的方法,实例分析了php中守护进程的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • PHP include_path设置技巧分享

    PHP include_path设置技巧分享

    当时候函数include(),require(),fopen_with_path()函数来寻找文件时候.在不设置include_path的情况下,这些函数打开文件时候默认的是以web根目录去寻找.当设置include_path以后,这些php函数就会先在指定的include_path目录下面去搜索寻找
    2011-07-07
  • php,ajax实现分页

    php,ajax实现分页

    之前用php写好了个分页程序,今天试着结合ajax实现这个功能,成功了。哈哈,代码不难写,但写好之后测试发现出了,然后又调试了好段时间才正确。深感开发人员的时间大部分都是花在调试代码上的。
    2008-03-03
  • PHPwind整合最土系统用户同步登录实现方法

    PHPwind整合最土系统用户同步登录实现方法

    我的任务就是让PHPWind和最土登录同步,领导也知道我的技术能力有限,不怎么高要求,所以让我先实现,再考虑其他。赶鸭子上架,开工了。
    2010-12-12

最新评论