1.导入,就是使用use操作符

2.在一个类中导入了另一个类之后,当前的命名空间仍然是当前类的命名空间

3.注意对命名空间中的名称(包含命名空间分隔符的完全限定名称如 Foo\Bar以及相对的不包含命名空间分隔符的全局名称如 FooBar)来说,前导的反斜杠是不必要的也不推荐的,因为导入的名称必须是完全限定的,(也就是说use时的名称必须是完全限定的,这是默认的。因此不要带"\")不会根据当前的命名空间作相对解析。

上图的extend,对名称的解析方法,和new时是一样的,如下图

4.正常情况下,在类A的方法中导入类B,使用类B必须注明B的名称,否则会在A的命名空间基础上进行寻找

为什么tpshop的PAYMENTCONTROLLER.CLASS.PHP引入weixin不这样呢?

5.关于require/include,

require "a.php"和"./a.php"的寻找方法完全不一样

分两种情况:

1.被包含文件先按参数给出的路径寻找,如果没有给出目录(只有文件名)时则按照 include_path(注释1) 指定的目录寻找。如果在 include_path 下没找到该文件则 include 最后才在调用脚本文件所在的目录和当前工作目录下寻找。所以,,会在三个地方去找

看实例:

class weixin extends RelationModel
{
public $tableName = 'plugin'; // 插件表
public $alipay_config = array();// 支付宝支付配置参数 /**
* 析构流函数
*/
public function __construct() {
parent::__construct();
require_once('a/test.class.php');exit();
require_once("lib/WxPay.Api.php"); // 微信扫码支付demo 中的文件
require_once("example/WxPay.NativePay.php");
require_once("example/WxPay.JsApiPay.php");

例子中的require,开头都没有指定路径,所以,会去三个地方找

然后,如果指定了路径,不管是绝对还是相对,都会忽略include_path

如果定义了路径——不管是绝对路径(在 Windows 下以盘符或者 \ 开头,在 Unix/Linux 下以 / 开头)还是当前目录的相对路径(以 . 或者 .. 开头)——include_path 都会被完全忽略。例如一个文件以 ../ 开头,则解析器会在当前目录的父目录下寻找该文件。

注释1.

get_include_path

(PHP 4 >= 4.3.0, PHP 5)

get_include_path — 获取当前的 include_path 配置选项

说明

string get_include_path ( void )

获取当前 include_path配置选项的值。

set_include_path

(PHP 4 >= 4.3.0, PHP 5)

set_include_path — 设置 include_path 配置选项

说明

string set_include_path ( string $new_include_path )

为当前脚本设置 include_path运行时的配置选项。

使用set_include_path会用到的一个系统常量:PATH_SEPARATOR(windows下是分号";")

PHP使用命名空间:别名/导入(Aliasing/Importing)的更多相关文章

  1. 21.命名空间别名限定符::和global全局名称空间限定符

    命名空间别名限定符(::)用于查找标识符,它在指定的别名的命名空间中查找运算符,如下代码是在全局名称空间中查找System.Console.WriteLine("Hello World&qu ...

  2. C#中命名空间别名的使用

    C#中使用命名空间来分割不同的层级,在不同的层级中可以使用相同的类声明和变量声明.在程序中使用不同命名空间的下的相同名称的类时:可以用一下这几种方法进行限定: 1.使用完全限定名 using Syst ...

  3. thinkPHP5 命名空间别名

    命名空间别名 对比 use app\index\model\User; 和 use model\User; 关键:\think\Loader::addNamespaceAlias('model','a ...

  4. 从3D Studio Max导入物体 Importing Objects From 3D Studio Max

    原地址:http://game.ceeger.com/Manual/HOWTO-ImportObjectMax.html If you make your 3D objects in 3dsMax, ...

  5. 从maya导入物体 Importing Objects From Maya

    原地址:http://game.ceeger.com/Manual/HOWTO-ImportObjectMaya.html Unity natively imports Maya files. To ...

  6. c# 命名空间别名

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

  7. 【C# 基础概念】命名空间

    命名空间 C#10 新功能==================== 命名空间格式:声明所有后续声明都是已声明的命名空间的成员: //C#10 命名空间的新写法,这种方式一个文件只能有一个命名空间. / ...

  8. PHP 命名空间(namespace)

    PHP 命名空间(namespace) PHP 命名空间(namespace)是在PHP 5.3中加入的,如果你学过C#和Java,那命名空间就不算什么新事物. 不过在PHP当中还是有着相当重要的意义 ...

  9. php命名空间

    命名空间概述 (PHP 5 >= 5.3.0, PHP 7) 什么是命名空间?从广义上来说,命名空间是一种封装事物的方法.在很多地方都可以见到这种抽象概念.例如,在操作系统中目录用来将相关文件分 ...

随机推荐

  1. Foundation框架—数据类(NSData)

    一 NSData的使用 .string -> data     NSString *str = @"changxiangweilai";     NSData *data = ...

  2. for+next()实现数组的遍历及while list each 的使用

    //要求使用for循环语句来完成该数组的遍历//输出每一项的键名和对应值:    $a = array(           'a' => 34,           5 => 51,  ...

  3. 实数---Currency讲解

      Currency 实际上是 Int64 的变体,Int64/10000 就是实际的值 

  4. XMl.02-约束

    DTD约束 DTD的书写位置 XML构建模块 DTD定义元素 DTD属性的定义 DTD实体的定义 schema约束 命名空间 schema约束的书写流程 XML被设计为一种很灵活的标记文档. 但是,有 ...

  5. npm库下载缓慢解决方案

    淘宝针对国内下载npm库缓慢的问题,使用建立自己的cnpm库,可以很方便使用在公司内部使用. 地址:http://npm.taobao.org/ $ npm install -g cnpm --reg ...

  6. PHP抓取及分析网页的方法详解

    本文实例讲述了PHP抓取及分析网页的方法.分享给大家供大家参考,具体如下: 抓取和分析一个文件是非常简单的事.这个教程将通过一个例子带领你一步一步地去实现它.让我们开始吧! 首先,我首必须决定我们将抓 ...

  7. U盘安装WIN10专业版

    安装环境1个SSD,2个SATA盘. 安装时把2个SATA盘拔掉,并使SSD在BISO中的地位为0区的MASTER,否则安装时会出现,无法创建当前分区,和新建当前分区. 步骤:下载win10正式专业版 ...

  8. Cocos学习-----Cocos2Dx安装

    昨天晚上从官网下载了cocos2dx,打开发现win下工程已经是2010了最少,很是郁闷.尝试着在08下新建工程然后添加文件,发现还是很麻烦,于是下载了vs2010,打开编译报错:error C206 ...

  9. spring mvc 4.3.2 + mybatis 3.4.1 + mysql 5.7.14 +shiro 幼儿园收费系统 之 动态组合条件查询

    实际应用中,系统设计无法预料到用户最终的查询条件是怎样的.通常的做法是给出一些限制死的查询条件让用户查询.业务稍有改动,就要重新设计界面,增加查询字段等,费时费力. 比较好的做法是,除了常用的查询外, ...

  10. Spring+springmvc+Mybatis整合案例 xml配置版(myeclipse)详细版

    Spring+springmvc+Mybatis整合案例 Version:xml版(myeclipse) 文档结构图: 从底层开始做起: 01.配置web.xml文件 <?xml version ...