[namespace]PHP命名空间的动态访问 & 使用技巧

-----------------------------------------------------------------------------------------------

/*
|----------------------------------------
|一.动态访问命名空间的元素
|@黑眼诗人 <www.chenwei.ws>
|----------------------------------------
*/
namespace me\poet;

function test()
{
    echo ‘1111‘;
}

$fun = ‘test‘;//不能这么用,最后$fun()无法动态调用到test():Fatal error: Call to undefined function test()

$fun = ‘\me\poet\test‘;//正确

//$fun = ‘me\poet\test‘;//正确

$fun();

//也就是说,动态调用必须是 限定名称 或 完全限定名称(概念参考:PHP命名空间的使用基础
/*
|-------------------------------------
|二.魔术常量 和 操作符
|-------------------------------------
*/
namespace me\poet;

function test()
{
    echo ‘1‘;
}

echo __NAMESPACE__; //魔术常量:命名空间的名称(输出 me\poet)

//namespace操作符:显式访问当前命名空间或子命名空间中的元素,等价于类中的self操作符
\me\poet\test();

namespace\test();

//上两行代码等价。
/*
|-------------------------------------------
|三.别名、导入 和 全局空间(含多个例子)
|-------------------------------------------
*/
namespace ws\weichen\www;

use ws\weichen\www as poet;//定义别名poet

//use ws\weichen\www; //不加as,则取最后的作为别名(www)

function demo()
{
    echo ‘1‘;
}

\ws\weichen\www\demo();

poet\demo();

//www\demo();    //不加as的情况,则这样调用

//以上三行代码效果一样。

//按规则(ws\weichen\www)命名的好处:若更换域名,只要把前缀名称改了就可以,不影响后面代码中别名www的使用。

/*--------------------------------------------------------*/
/* 导入 */
include ‘hello.class.php‘;

use \ws\weichen\www;

use \Hello;
/*--------------------------------------------------------*/
/* 支持多个use语句 */
use \nihao\shijie as hello, \ws\weichen\www;

/*--------------------------------------------------------*/
/* 全局空间:反斜线调用 */
namespace A\B\C;
//这个函数是 A\B\C\fopen();
function fopen()
{
    $f = \fopen(‘demo.txt‘);//调用全局fopen函数
    return $f;
}

-------------------------------------------------------------------------------------------------

[namespace]PHP命名空间的动态访问 & 使用技巧,布布扣,bubuko.com

时间: 2024-08-07 08:23:51

[namespace]PHP命名空间的动态访问 & 使用技巧的相关文章

WebService WSDL动态访问

ClassName:WebServiceInvoke.cs ClassCode: 1 using System; 2 using System.CodeDom; 3 using System.CodeDom.Compiler; 4 using System.IO; 5 using System.Linq; 6 using System.Net; 7 using System.Reflection; 8 using System.Text; 9 using System.Web.Services.

清默网络——动态访问列表

动态访问列表 动态ACL,也被称为lock-and-key ACL,在1996年作为选项引入思科 IOS.动态ACL仅支持IP流量.动态ACL依赖于telnet连接,用户telnet路由器,并验证通过,此时telnet自动断开,并动态产生一条 临时ACL语句.当一段时间内,无该语句相关流量通过,临时的ACL语句消失.         动态访问表是对传统访问表的一种重要功能增强.我们从动态访问表的名称就可以看出,动态访问表是能够创建动态访问表项的访问表.传统的标准访问表和扩展 的访问表不能创建动态

[namespace]PHP命名空间的使用基础

-------------------------------------------------------------------------------------------------- 一. PHP的命名空间主要解决三种冲突的问题:常量,函数,类 通俗理解:namespace就相当于是用来建一个目录,将namespace下面的代码放在该目录里面,与外面的区分开来. /* |--------------------------------- |namespace示例 |@黑眼诗人 <w

FreeCMS怎么动态访问模板?

原文地址:http://javaz.cn/site/javaz/site_study/info/2015/31166.html 项目地址:http://www.freeteam.cn/ FreeCMS商业版提供此功能.共有两种方式. 1.使用templetPro.do访问 ${contextPath}templetPro.do?siteid=${site.id}&templetPath=index.html siteid参数代表站点id. templetPath参数代表要动态访问此站点所用模板下

通过web的方式动态访问Tomcat的catalina.out日志

1:安装web.py 参考:http://webpy.org/install.zh-cn 下载web.py # wget http://webpy.org/static/web.py-0.33.tar.gz 安装web.py # tar zxvf web.py-0.33.tar.gz # cd web.py-0.33 使所有的web程序可以访问 # python setup.py install OK,安装完毕,关于web.py请参考http://webpy.org/install.zh-cn

使用XLinq.XElement读取带Namespace(命名空间)的XML

简介 本文主要介绍通过XELemet去读取含有namespaces(xmlns)的XML,这也是偶然间发现这个问题的,一个群里的小伙伴突然问起这个,以此记录一下. 背景 一个XML文档可能包括来自多个XML词汇表的元素或属性,如果每一个词汇表指派一个命名空间,那么相同名字的元素或属性之间的名称冲突就可以解决. 举一个简单的例子来说,在一个订单的XML文档中需要引用到客户和所购买的产品,customer元素和product元素可能都有一个叫做id的子元素.这时候要引用id元素会造成名称冲突,但是如

14个优化网站性能提高网站访问速度技巧

相信互联网已经越来越成为人们生活中不可或缺的一部分.ajax,flex等等富客户端的应用使得人们越加“幸福”地体验着许多原先只能在C/S实 现的功能.比如Google机会已经把最基本的office应用都搬到了互联网上.当然便利的同时毫无疑问的也使页面的速度越来越慢.自己是做前端开发的,在性能方面,根据yahoo的调查,后台只占5%,而前端高达95%之多,其中有88%的东西是可以优化的. 以上是一张web2.0页面的生命周期图.工程师很形象地讲它分成了“怀孕,出生,毕业,结婚”四个阶段.如果在我们

Objective-C 的动态提示和技巧

过去的几年中涌现了大量的Objective-C开发者.有些是从动态语言转过来的,比如Ruby或Python,有些是从强类型语言转过来的,如Java或C#,当然也有直接以Objective-C作为入门语言的.也就是说有很大一部分开发者都没有使用Objective-C太长时间.当你接触一门新语言时,更多地会关注基础知识,如语法和特性等.但通常有一些更高级的,更鲜为人知又有强大功能的特性等待你去开拓. The Runtime Objective-C是一门简单的语言,95%是C.只是在语言层面上加了些关

j2ee开发之struts2框架学习笔记

Struts2框架技术重点笔记 1.Struts2 是在webwork基础上发展而来. 2.Struts2 不依赖struts API和 servlet API 3.Struts2提供了拦截器,表现层技术:jsp +freeMarket+ velocity 4.Struts2可以对指定的方法进行校验,提供了全局范围,包范围和action范围的国际化资源文件的管理实现. 环境搭建:找到对应的jar包 编写struts的配置文件 <?xml version="1.0" encodin