php namespace use 命名空间
也可以参考PHP官网说明:http://php.net/manual/en/language.namespaces.importing.php
namespace(以下简称ns)。在定义了一个ns之后,下面所申明的class、interface、const(不包含variable)都是在 申明的ns这个“域”里面的。当引用一个申明了ns的包含文件,想要调用这个ns里面的东西,那必须调整当前脚本也到此ns域,否则就得用全称()包含 ns全称):
- // inc.php
- namespace Foo;
- class Bar {}
- // 访问Foo的第一种方法,用全称
- require 'inc.php';
- $foo = new \Foo\Bar();
- // 访问Foo的第二种方法
- namespace Foo; // 调整当前脚本到Foo这个ns域,而且namespace申明必须在第一句
- require 'inc.php';
- $foo = new Bar();
- // 比如
- use A\Very\Long\Namespace as Ns;
- // 这样就可以用Ns来代替A/Very/Long/Namespace这个ns下定义的东西
- $foo = new Ns\Foo();
但是在一些开源项目里面经常会看到use
Ns\Component这样的用法,没有用as,这让我以前一直在思考use是否还有第二种用法,糟糕的是php的文档里面也没有对此用法有描述,只能
靠猜测,后来仔细想过这个问题,得出一个比较靠谱的结论是use可以省略as以及后面的别名而直接把ns最后一个节点的名字当作别名,感觉是不是很像ln
-s命令的用法呢:
- // 第三种用法
- require 'inc.php';
- use Foo\Bar; // 这个意思就等同于use Foo\Bar as Bar ; 这样Bar就等于Foo\Bar了
- $foo = new Bar();
php namespace use 命名空间的更多相关文章
- 使用XLinq.XElement读取带Namespace(命名空间)的XML
简介 本文主要介绍通过XELemet去读取含有namespaces(xmlns)的XML,这也是偶然间发现这个问题的,一个群里的小伙伴突然问起这个,以此记录一下. 背景 一个XML文档可能包括来自多个 ...
- [namespace]PHP命名空间的动态访问 & 使用技巧
----------------------------------------------------------------------------------------------- /* | ...
- [namespace]PHP命名空间的使用基础
-------------------------------------------------------------------------------------------------- 一 ...
- Django 中 app_name (应用命名空间) 和 namespace (实例命名空间) 的区别
转自:https://www.jianshu.com/p/404500a0408a 补充理解: 先把官网上对应用命名空间(app_name)和实例命名空间(namespace)的解释贴上: app_n ...
- PHP 命名空间(namespace)
PHP 命名空间(namespace) PHP 命名空间(namespace)是在PHP 5.3中加入的,如果你学过C#和Java,那命名空间就不算什么新事物. 不过在PHP当中还是有着相当重要的意义 ...
- c++之命名空间namespace
1命名空间解决全局变量的冲突 main.h文件 #pragma once // data命名空间的名称 namespace data { ;//外部全局变量冲突 } main.cpp #include ...
- c++ namespace命名空间详解
What is a namespace? A namespace defines an area of code in which all identifiers are guaranteed to ...
- 02C++namespace命名空间
一.C++命名空间基本常识 所谓namespace,是指标识符的各种可见范围.C++标准程序库中的所有标识符都被定义于一个名为std的namespace中. 1.<iostream>和&l ...
- php中的namespace 命名空间
名字解释: namespace(命名空间),命名空间是从php5.3开始支持的功能.作用主要有两个:1.可以避免类名取得过长.2.当在多个框架配合使用时,同名的类之间不会冲突. 命名空间,看名字就知道 ...
随机推荐
- Python:类属性,实例属性,私有属性与静态方法,类方法,实例方法
From: http://www.cnblogs.com/pengsixiong/p/4823473.html 属性分为实例属性与类属性 方法分为普通方法,类方法,静态方法 一:属性: 尽量把需要用户 ...
- 通过ajax提交form表单
$.ajax({ url : 'deliveryWarrant/update.do', data : $('#myform').serialize(), type : "POST" ...
- poj 1552 Doubles
#include <stdio.h> #include <stdlib.h> ]; int cmp(const void *a, const void *b) { return ...
- HDU-2888 Check Corners 二维RMQ
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2888 模板题.解题思路如下(转载别人写的): dp[row][col][i][j] 表示[row,ro ...
- Percona Xtrabackup备份mysql(转)
add by zhj:另外,参考了Xtrabackup之innobackupex备份恢复详解,我用的是Xtrabackup2.2.6版本, 可以成功备份和恢复指定的数据库. 原文:http://www ...
- jquery call方法和apply方法接触
call方法: 语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 说明: call 方法可以用来 ...
- 三、 将DataTable 转换为List
1. 方法public static IList<T> ConvertTo<T>(DataTable table) { if (table == null) { return ...
- C++ 16进制转10进制
#include <stdio.h>#include <string.h>unsigned long f(char* str){ unsigned long var=0; un ...
- C++11显式虚函数重载
[C++11显式虚函数重载] 在子类中给重载的虚函数加上override, 可以让编译器检察基类是否有这一虚函数.此功能适用于当基类原有的虚函数发生变化,即相当于编译期检察. 而基类,可以给函数加上f ...
- day09(sql基础01)
SQL语言的分类 SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML, 数据定义语言DDL,数据控制语言DCL. 1:数据查询语言DQL Q = Query 数据查询语言DQL用于检索 ...