TP_字母函数

1. A()

A函数用于实例化控制器

格式:[资源://][模块/]控制器 A($name,$layer='',$level='')

@param string $name 资源地址

@param string $layer 控制层名称

@param integer $level 控制器层次

@return Controller|false

2. B()

执行某个行为 B($name,$tag='',&$params=NULL)

@param string $name 行为名称

@param string $tag 标签名称(行为类无需传入)

@param Mixed $params传入的参数 @return void

这是随着行为应运而生的新生函数,可以执行某个行为,例如B('app_begin');

就是在项目开始之前,执行这个行为定义的所有函 数,支持2个参数,第二个参数支持需要接受一个数组

例如B('app_begin',array("name"=>"tdweb","time"=>time()));这样。

 

3. C()

读取及设置配置参数 C($name=null,$value=null,$default=null)

@paramstring|array $name 配置变量

@param mixed $value 配置值

@param mixed $default 默认值

@return mixed

获取值:  

获取所有设置:C(); 不传递任何参数,返回一个包含所有设置的数组。

获取指定配置:C('URL_MODEL') 这样就能得到URL_MODEL的配置信息

获取指定二维数组配置:C("array.name"),这样就返回数组array下的key为name所对应的值

设置值:

为二维数组赋值C("array.name","value"),原理同上(获取array.name的值),后边的value是值

批量赋值: 

$test=array("URL_MODEL"=>1,"THIN_MODEL"=>true");

C($test);  这样直接将数组里的值赋值了

判断是否赋值:

C("?URL_MODEL")这样前边加个"?",如果已经赋值,则返回true

需要说明的是,这里虽然更改了配置的值,但是仅仅是这个页面做了更改,到下个页面就不起作用了,

如果想改就永久更改,那么需要配合F函数,将配置文件写入config.php才行。

4. D()

D函数用于实例化模型类格式 [资 源://][模块/]模型 D($name='',$layer='')

@param string $name 资源地址

@param string $layer 模型层名称

@return Model

D函数有2个优点:

一是如果之前实例化过这个Model,那么就不再实例化了,省资源;

二是方便调试,如果不存在 这个Model,会抛出TP异常,非常人性化。

如果访问本项目的Model直接D("Model名称");就可以了,如果打算跨项目访问,就使用 D("Model名称","项目名称");

5. E()

抛出异常处理 E($msg, $code=0)

@param string $msg异常消息

@param integer $code 异常代码默认为0

@return void

6. F()

快速文件数据读取和保存  针对简单类型数据字符串、数组 F($name, $value='',$path=DATA_PATH)

@param string $name 缓存名称

@param mixed $value 缓存值

@param string $path 缓存路径

@return mixed

快速保存数据:F("mydata","这里是要保存的数据"),这样就在项目Data目录下保存了一个名叫mydata.php的文件,里边的内容是该函数的第二个参数。

指定保存时间 :F("mydata","这里是要保存的数据","60"),这样,如果下次再访问,间隔大于60秒则删除次缓存文件。

指定保存目录:F("mydata","这里是要保存的数据","60",DATA_PATH) ,这样就指定保存在data目录下

立即删除缓存:F("mydata",null),第二个参数传递一个null值,这样就删除了mydate这个缓存

读取缓存数据:F("mydata"),这样就读取这个缓存了

 

7. G()

记录和统计时间(微秒)和内存使 用情况 G($start,$end='',$dec=4)

使用方法:

G('begin'); // 记录开始标记位 // ... 区间运行代码

G('end'); // 记录结束标签位

echo G('begin','end',6); //统计区间运行时间精确到小数后6位

echo G('begin','end','m'); // 统计区间内存使用情况 如果end标记位没有定义,则会自动以当前作为标记位

其中统计内存使用需要 MEMORY_LIMIT_ON 常量为true才有效

@param string $start 开始标签

@param string $end 结束标签

@paraminteger|string $dec小数位或者m

@return mixed

8. I()

获取输入参数支持过滤和默认值 I($name,$default='',$filter=null)

使用方法:

I('id',0); //获取id参数自动判断get或者post

I('post.name','','htmlspecialchar s'); //获取$_POST['name']

I('get.'); //获取$_GET

9. L()

获取和设置语言定义(不区分大小 写)L($name=null,$value=null)

@paramstring|array $name 语言变量

@param mixed $value 语言值或者变量

@return mixed

语言定义函数,L("intro")获取定义成intro的语言,l("intro","介绍")为intro赋值

10. M()

M函数用于实例化一个没有模型文件的Model M($name='',$tablePrefix='',$connection='')

@param string $name Model名称支持指定基础模型例如MongoModel:User

@param string $tablePrefix表前缀

@param mixed $connection 数据库连接信息

@return Model

11. N()

设置和获取统计数据 N($key,$step=0,$save=false)

使用方法:

N('db',1); // 记录数据库操作次数

N('read',1); // 记录读取次数

echo N('db'); // 获取当前页面数据库的所有操作次数

echo N('read'); // 获取当前页面读取次数

@param string $key 标识位置

@param integer $step 步进值

@return mixed

12. R()

远程调用控制器的操作方法 URL 参数格式 [资源://][模块/]控制器/操作 R($url,$vars=array(),$layer='')

@param string $url调用地址

@paramstring|array $vars调用参数支持字符串和数组

@param string $layer 要调用的控制层名称

@return mixed

13. T()

获取模版文件格式资源://模块@ 主题/控制器/操作 T($template='',$layer='')

@param string $name 模版资源地址

@param string $layer 视图层(目录)名称

@return string

14. U()

URL组装支持不同URL模式 U($url='',$vars='',$suffix=true,$domain=false)

@param string $url URL表达式,格式:'[模块/控制器/操作#锚点@域名]?参数1=值1&参数2=值2...'

@paramstring|array $vars传入的参数,支持数组和字符串

@param string $suffix 伪静态后缀,默认为true表示获取配置值

@paramboolean $domain 是否显示域名

@return string

使用方法:

取得当前模块的Action地址 :U("/nowMethod");

取得当前模块的Action地址,并传递参数:U("/nowMethod?params=test");

(如果不习惯上边那种方式,可以使用U("/nowMethod",array("params"=>"test");这样的数组方式传递参数,效果是一样的)

访问其他模块的方法:U("Other/otherMethod"),这样就是访问Other模块下的otherMethod方法

跨项目访问:U("appname://Other/otherMethod");

使用路由访问:U("appName://routeName@moduleName/actionName?params");

另外,如果想直接跳转,那么就在第二个参数写1,例如U("/nowMethod",1);这样就直接调转到指定URL了

 

15. W()

渲染输出Widget W($name,$data=array())

@param string $name Widget名称

@param array $data 传入的参数

@return void

16. S()

缓存管理 S($name,$value='',$options=null)

@param mixed $name 缓存名称,如果为数组表示进行缓存设置

@param mixed $value 缓存值

@param mixed $options 缓存参数

@return mixed

全局缓存读写函数,和C类似,不过是直接写成文件,写在Temp目录下,不过在缓存有一点需要注意,

如果缓存名称是aaa,那么缓存生成的文件名称就是md5("aaa")的值。

转载于:https://www.cnblogs.com/xcc2016/p/5722907.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/256692.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

父div高度和宽度的应用

这是我自己在仿腾讯首页时遇到的布局问题,在此记录,如果有错,欢迎指正。 首先是对齐问题,可以把父div的高度设置为0,然后调整padding值,这样可以批量调整子div们和其他父div的相对高度。 这是父div的样式 .…

flume package遇到的问题

flume打包遇到的一些问题 1.ipc兼容性问题,线上使用2.3.0的hdfs,但是打包时默认为1.2.1的 123408 Apr 2015 19:38:25,122 WARN [SinkRunner-PollingRunner-DefaultSinkProcessor] (org.apache.flume.sink.hdfs.HDFSEventSink.process:455) - HDFS IO e…

有限元笔记06-三维实体单元

多个四面体单元组合起来可以形成六面体

python读取excle表格数据,将数据编辑到图像上工程

这里写目录标题一级目录:python读取excel表格内容二级目录:python如何分割字符串三级目录:python如何在图像的相应位置编辑文字或者字母、数字一级目录:python读取excel表格内容 二级目录:python如何分割字符串 三级…

暑假计划

保研的事还是要听天由命。日常拜锦鲤大王。 生产实习呢....估计也是要水过去。等尘埃落定后再补补这些项目吧。 字符串: 1.后缀数组专题(知乎专栏) 2.熟练AC自动机 dp: 3.状压dp轮廓线dp入门 4.数位dp 数学: 5.FFT容斥…

使用junit测试用例

通常只会使用junit测试非main方法,在我眼里就是程序入口实现而已。今天,发现原来可以测试类。 针对mybatis练习。在需要测试的UserDaoImpl类上右键,新建一个junit case,位置可以放到新创建的source folder :test里面。 选择需要测试的方法&am…

H5页面适配所有iPhone和安卓机型的六个技巧

1、viewport 简单粗暴的方式&#xff1a; <meta name"viewport" content"width320,maximum-scale1.3,user-scalableno"> 直接设置viewport为320px的1.3倍&#xff0c;将页面放大1.3倍。 为什么是1.3&#xff1f; 目前大部分页面都是以320px为基准的布…

最优化作业第6章——无约束多维非线性规划方法

代码&#xff1a; #导入模块 from sympy import * import sympy as sp #将导入的模块重新定义一个名字以便后续的程序进行使用 from numpy import * import numpy as np#定义主要的处理函数 def main():#x1,x2&#xff1a;目标函数变量&#xff1b;alpha&#xff1a;步长因子…

linux的进程与库之间的通信两种方式

文章目录前言一、进程A与算法库b的通信方式之一&#xff1a;动态dlopen加载算法库b&#xff0c;编译的时候是需要加载该头文件就可以&#xff0c;无需连接该算法库b具体的实施细节&#xff1a;二、进程A与算法库b的通信方式之二&#xff1a;进程A编译的时候连接上算法库b和该头…

Day03——类、值和对象

1.js数字-NaN和Infinity 1、在js中&#xff0c;有一种特殊的数值&#xff0c;叫做NaN&#xff08;Not a Number&#xff09;&#xff0c;表示本来要返回数值的操作却未返回数值的情况&#xff0c;例如0除以0的操作&#xff0c;在其它语言中会报错误或异常&#xff0c;而在js中&…

ASIHTTPRequest详解 [经典3]

大文件断点续传 0.94 以后支持大文件的断点下载&#xff0c;只需要设置&#xff1a; [ request setAllowResumeForFileDownloads:YES ]; [ request setDownloadDestinationPath:downloadPath ]。 就可以了。 ASIHTTPRequest会自动保存访问过的&#xff35;&#xff32;&#xf…

python矩阵相关操作

1.创建mxn的矩阵 import numpy as np from numpy import *x np.array([[2,1],[1,2],[2,2])#创建了一个3x2的数组 x np.mat(x)#将数组转化为矩阵2.数组与矩阵的转化 from numpy import * import numpy as np#数组转化为矩阵 matrix np.mat(array)#矩阵转化为数组 array ma…

关于F5的一些基础话题

负载均衡器通常称为四层交换机或七层交换机。四层交换机主要分析IP层及TCP/UDP层&#xff0c;实现四层流量负载均衡。七层交换机除了支持四层负载均衡以外&#xff0c;还有分析应用层的信息&#xff0c;如HTTP协议URI或Cookie信息。一、F5配置步骤&#xff1a;1、F5组网规划(1)…

传输协议上的字节解析问题

1、 低字节在前&#xff0c;高字节在后 2、0x01高字节 &#xff0c; 0x00 低字节&#xff0c;如何组合成一个字节 3、0x01 0000 0000 0000 0001 4、0x00 0000 0000 0000 0000 5、按照组合规则&#xff0c;低字节在前&#xff0c;高字节在后组合成的新数据 6、0x01 0x00 0x0…

POJ C++程序设计 编程题#7:字符串排序

编程题&#xff03;7&#xff1a;字符串排序 来源: 北京大学在线程序评测系统POJ (Coursera声明&#xff1a;在POJ上完成的习题将不会计入Coursera的最后成绩。) 总时间限制: 1000ms 内存限制: 1024kB 描述 请按照要求对输入的字符串进行排序。 #include <iostream> #inc…

Delphi格式化函数Format、FormatDateTime和FormatFloat详解

转自&#xff1a;http://outofmemory.cn/code-snippet/7631/Delphi-format-hua-function-Format-FormatDateTime-FormatFloat-explainindetail 1.Format 根据指定所需要的格式&#xff0c;格式化字符串。 原型&#xff1a; function Format(const Format: string const Args: a…

OSPF地址汇总配置

配置过程在R1上&#xff1a;1. 给 Loopback 0 接口分配IP。2. 给ethernet 0/0 接口分配 IP3. 开启OSPF路由协议&#xff0c;进程号为110&#xff0c;并宣告直连网段。在R2上&#xff1a;1. 给ethernet 0/0 接口分配 IP2. 开启OSPF路由协议&#xff0c;进程号为110&#xff0c;并…

论文写作与学术规范课堂笔记01——4.30

论文质量的判断标准 &#xff08;原创&#xff09;创新性&#xff1a;观点、方法、材料 写作质量&#xff1a;逻辑性、语言清晰、数学数据、格式、数据可视化 论文写作的提升路径 模仿 经验

requirejs学习之-- 初始化(一)

为了规范在项目中使用的javascript代码&#xff0c;我们使用了requirejs框架。 初始阶段&#xff0c;我们在按钮的点击事件中调用创建的模块&#xff0c;代码如下&#xff1a; function button_click() {_this this;var args _this["Command_Params"] || (_this.co…

ROS系统中的多个版本Boost问题

1、删除多余的boost版本&#xff0c;只需要删除该版本的libboost*库以及Boost的头文件&#xff0c;不需要使用sudo apt-get rm --pugre libboost-dev sudo apt-get armove libboost-dev;这种卸载会把很多Boost依赖的库删掉&#xff1b;想要单纯的只删除当前版本的Boost库&#…