php函数import(PHP函数名)

  • 1、Thinkphp中import;是什么意思
  • 2、php中import什么意思
  • 3、thinkphp import 导入文件怎么使用

import方法是ThinkPHP框架用于类库导入的封装实现,尤其对于项目类库、扩展类库和第三方类库的导入支持,import方法早期的版本可以和java的import方法一样导入目录和通配符导入,后来考虑到性能问题,在后续的版本更新中不断改进和简化了,所以现在的用法比较简单明了。调用格式:

import(‘类库名’, ‘起始路径’, ‘类库后缀’)

imprt方法有一个别名vendor方法,专门用于导入第三方类库,区别在于起始路径和类库后缀默认值不同。

我们来分析下具体的用法:

导入系统基类库

系统基类库其实就是指的Think类库包,所在目录就是指框架的核心Lib目录,import方法可以用于导入系统基类库,例如:

import(‘Think.Util.Array’);

复制代码

表示导入系统目录下面的Lib/Util/Array.class.php 类库文件,相当于我们这样使用

require THINK_PATH.’Lib/Util/Array.class.php’;

复制代码

可以支持多级目录,例如:

import(‘Think.Util.U1.ClassA’);

复制代码

import(‘Think.Util.U1.A2.ClassB’);

传值:

函数参数压栈的是参数的副本。

任何的修改是在副本上作用,没有作用在原来的变量上。

function test($i){$i++;}

$a=1;

$b=test($a)

echo $a; //输出还是原来的 1

传引用:

压栈的是引用的副本。由于引用是指向某个变量的,对引用的操作其实就是对他指向的变量的操作。

function test($i){$i++;}

$a=1;

$b=test($a)

echo $a; //在函数中已被改变,输出变为 2

关于引用的解释请参数PHP手册-语言参考-引用的解释

1,ThinkPHP import 方法

ThinkPHP 模拟了 Java 的类库导入机制,统一采用 import 方法进行类文件的加载。import 方法是 ThinkPHP 内建的类库和文件导入方法,提供了方便和灵活的文件导入机制,完全可以替代 PHP 的 require 和 include 方法。

但对于第三方类库,我们建议使用 vendor 方法来导入。

2,import 语法:

boolen import(class, baseUrl, ext)

参数说明:

参数

说明

class 必须,表示要导入的类库,采用命名空间的方式。

baseUrl 可选,表示导入的基础路径,省略的话系统采用默认的规则,具体见下文。

ext 可选,表示导入的类库后缀,默认是 .class.php 。

import 方法是 ThinkPHP 内置的一个普通函数,可以在模块操作内自由使用,可以参考 PHP include 和 require 的用法。

import 类库导入例子

导入 ThinkPHP 基类库文件

import 方法导入 ThinkPHP 基类库文件,约定导入 Think、ORG、Com 包以 ThinkPHP 系统基类库为相对起始目录:

// 导入 ThinkPHP系统目录/Lib/Think/Util/Session.class.php 文件

import(“Think.Util.Session”);

// 导入 ThinkPHP系统目录/Lib/ORG/Util/Page.class.php 文件

import(“ORG.Util.Page”);

导入项目应用类库文件

// 导入 MyApp项目 Lib/Action/UserAction.class.php 文件

import(“MyApp.Action.UserAction”);

// 导入 MyApp项目 Lib/ORG/Page.class.php 文件

import(“MyApp.ORG.Page”);

// 导入 MyApp项目 Lib/ORG/My/Image.class.php 文件

import(“MyApp.ORG.My.Image”);

如果是当前项目,可以简化为:

import(“@.Action.UserAction”);

import(“@.ORG.Page”);

import(“@.ORG.My.Image”);

这种写法有利于项目的移植。如果是导入其他项目的类库,必须指定项目名称:

import(“OtherApp.Action.UserAction”);

注意:使用这种方式导入其他项目的类库时,必须保证两个项目的目录是平级的,否则需要指定 baseUrl 参数。

指定 baseUrl 参数

对于以上导入系统类库和项目类库的情况,import 方法会自动识别类库导入的路径,其他情况就需要指定 baseUrl 参数。如导入当前文件所在目录下的 My.class.php 文件:

import(“My”,dirname(__FILE__));

指定 ext 参数

ext 参数表示导入的类库后缀,默认是 .class.php。如果导入的文件不是 *.class.php 格式的,可以指定 ext 参数。如导入当前文件所在目录下的 My.php 文件:

import(“My”,dirname(__FILE__),”.php”);

. 符号文件导入

在 import 方法中,. 符号是用于表示目录层次的,如果需要导入的文件名包含有 . 符号,如 User.Info.class.php ,那么需要以 # 号来代替 . 号:

import(“@.Action.User#Info”);

别名导入

如果在别名定义文件定义了别名:

‘AdvModel’ = THINK_PATH.’/Lib/Think/Core/Model/AdvModel.class.php’,

可以使用 import 方法以别名的方式导入对应的类库文件:

import(‘AdvModel’);

系统默认的别名定义文件位于 ThinkPHP 系统目录下的 Commonalias.php,也可以定义项目自己的别名文件。

其他说明

同名文件导入冲突

import 方法具有缓存和检测机制,相同的文件不会重复导入,如果发现导入了不同的位置下面的同名类库文件,系统会提示冲突,例如:

import(“Think.Util.Array”);

import(“App.Util.Array”);

上面的情况导入会产生引入两个同名的 Array.class.php 类,即使实际上的类名可能不存在冲突,但是按照 ThinkPHP 命名规范,类名和文件名是一致的,所以系统会抛出类名冲突的异常,并终止执行。

什么时候需要使用 import 方法?

import 方法用于导入当前需要而 ThinkPHP 又不能自动载入的文件,如系统基类 ORG 与 Com 目录下的扩展基类,自己的类库等。至于第三方类库,也可以使用 import 方法导入,但建议使用 vendor 方法导入。

import 方法与 import 标签的区别

import 方法用于模块操作中导入不能自动加载的文件类库,import 标签用于在模板中导入外部 Js 和 CSS 文件。

import 方法与 PHP6 import

在未来的 PHP6 版本中开始支持命名空间和 import 关键字,因此可以预见,ThinkPHP 可能会对 import 方法加以改写。

原创文章,作者:K9HL9,如若转载,请注明出处:https://www.506064.com/n/126902.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
K9HL9的头像K9HL9
上一篇 2024-10-03 23:13
下一篇 2024-10-03 23:13

相关推荐

  • 使用cat命令查看文件内容

    一、使用cat命令基础 cat是一种常用的Linux命令,用于查看文件内容。cat命令语法如下: cat [选项] [文件] 其中,文件参数可以指定一个或多个文件名,多个文件名之间…

    编程 2024-12-06
  • Python 程序:计算一个数字的十进制位总和

    在这个简单的 python 程序中,我们必须找到一个数字的十进制位总和。这是一个初级 python 程序。 要理解这个例子,您应该了解以下 Python 编程主题: Python …

    编程 2024-10-03
  • Hive行转列详解

    Hive是Hadoop的数据仓库系统,可用于数据汇总、查询和分析。它具有完全相同的功能和特性,可以处理大规模的分布式数据集。Hive的常用操作之一是将行转列。行转列是指将一行数据转…

    编程 2024-12-01
  • java正则,java正则表达式详解

    本文目录一览: 1、java正则表达式是什么? 2、java 正则表达式是什么? 3、java正则表达式是什么? 4、java正则表达式 java正则表达式是什么? 在程序开发中,…

    编程 2024-11-16
  • 深入理解make-f

    make-f是一个强大的工具,被广泛用于构建和管理软件项目。在本文中,我们将从多个方面详细介绍make-f,包括makefile、make的翻译、makefile官网、makefa…

    编程 2024-11-26
  • Camunda教程详解

    一、Camtasia教程完整版 Camtasia是一款视频截屏和视频编辑软件,可以用于快速制作教程视频。它提供了许多优秀的功能,例如屏幕录制、视频剪辑和鼠标高亮等。使用Camtas…

    编程 2024-11-21
  • tesseract安装指南

    一、tesseract安装教程 tesseract是一个免费的OCR引擎,支持70多种语言的文本识别。通过安装tesseract,您可以使用Python等编程语言中提供的接口来识别…

    编程 2024-11-26
  • 使用pyc文件加速Python程序运行

    一、什么是pyc文件 pyc文件是Python代码编译后生成的文件。在Python代码运行的过程中,首先将Python代码编译成一些列字节码指令,这些指令被存放在以.pyc后缀名的…

    编程 2024-12-04
  • mysql官网示例数据库,mysql数据库网站

    本文目录一览: 1、怎么用命令打开mysql数据库操作页面 2、哪有mysql学习用的示例数据库 3、如何在windows下搭建mysql数据库 4、如何下载mysql示例数据库e…

    编程 2024-11-21
  • c语言教程大学,大学C语言教程

    本文目录一览: 1、大学生如何学好C语言 2、什么时候中国大学开始c语言教学的? 3、大学c语言怎么学 大学生如何学好C语言 1.要有耐心 许多初学者都熟悉 C 的前几章。当你到达…

    编程 2024-12-05

发表回复

登录后才能评论