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下是分号";")

最新文章

  1. Backbone,Marionette,Talent学习笔记
  2. 【原创】Java批量反编译利器(jd-gui)介绍
  3. PTA Hashing
  4. Bestcoder round #65 && hdu 5592 ZYB's Premutation 线段树
  5. 几种web数据渲染模板对比
  6. SQL查询表占用空间大小
  7. **关于PHP如何定义一个空对象(REST API如何处理空对象和空数组)
  8. WPF学习之路初识
  9. SQL整理1 数据类型
  10. 3、Spring4之Bean 配置的细节
  11. 磁盘IO:缓存IO与直接IO
  12. maven隐式依赖引起的包冲突
  13. Handler Timer TimerTask ScheduledExecutor 循环任务解析
  14. window 日志清楚
  15. 实现一个自定义的ArrayList类,实现将原List中的每个数据都乘以10
  16. 网络基础知识 - HTTP协议
  17. 关于Intel漏洞的学习
  18. while循环、break、continue
  19. 解决Maven工程install时[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources
  20. MySql详解(七)

热门文章

  1. 关于iOS10的允许访问用户数据产生的问题
  2. 从入门到精通C++需要学的10本书
  3. c#程序中使用"like“查询access数据库查询为空的问题
  4. Net accounts命令
  5. Mathematica(MMA)闪电入门系列 目录与说明
  6. Python 3.6.0的sqlite3模块无法执行VACUUM语句
  7. All About Python
  8. linux 驱动学习笔记05--文件系统与设备文件系统
  9. linux学习4 网络命令和关机重启
  10. 关于GC的几篇文章