ThinkPHP大写单字母函数
php大小写转换函数(strtolower、strtoupper)用法介绍
php⼤⼩写转换函数(strtolower、strtoupper)⽤法介绍1,将字符串转换成⼩写strtolower函数: 该函数将传⼊的字符串参数所有的字符都转换成⼩写,并以⼩定形式放回这个字符串。
例⼦:<?php$str = "I want To FLY";$str = strtolower($str);echo $str;//by >输出:i want to fly2,将字符转成⼤写strtoupper函数:该函数的作⽤同strtolower函数相反,是将传⼊的字符参数的字符全部转换成⼤写,并以⼤写的形式返回这个字符串。
⽤法同strtolower()⼀样。
下⾯再介绍⼆个很有⽤的函数。
3,将字符串⾸字符转换成⼤写ucfirst函数:该函数的作⽤是将字符串的第⼀个字符改成⼤写,该函数返回⾸字符⼤写的字符串。
⽤法同strtolower()函数类似。
4,将字符串每个单词的⾸字符转换成⼤写ucwords:该函数将传⼊的字符串的每个单词的⾸字符变成⼤写。
如"hello world",经过该函数处理后,将返回"Hello Word"。
⽤法同strtolower()类似。
重点看下最常⽤的这⼏个函数在编写PHP程序时,经常会需要对⼀些字符串进⾏⼤⼩写转换,下⾯是⼏个最常⽤的函数strtolower() //将字符串转换为⼩写形式strtoupper() //将字符串转换为⼤写形式ucfirst() //将字符串的第⼀个字符转换为⼤写形式ucwords() //将字符串中每⼀个单词的⾸字母转换为⼤写形式总结以上所述是⼩编给⼤家介绍的php⼤⼩写转换函数(strtolower、strtoupper)⽤法介绍,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。
在此也⾮常感谢⼤家对⽹站的⽀持!。
在ThinkPHP中有许多使用简便的单字母函数
在ThinkPHP中有许多使用简便的单字母函数(即快捷方法),可以很方便开发者快速的调用,但是字母函数却不方便记忆,本文将所有的字母函数总结一下,以方便以后查找。
1.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 string2.D() D函数用于实例化模型类格式 [资源://][模块/]模型D($name='',$layer='')@param string $name 资源地址@param string $layer 模型层名称@return Model3.M() M函数用于实例化一个没有模型文件的ModelM($name='',$tablePrefix='',$connection='')@param string $name Model名称支持指定基础模型例如MongoModel:User@param string $tablePrefix 表前缀@param mixed $connection 数据库连接信息@return Model4.I() 获取输入参数支持过滤和默认值I($name,$default='',$filter=null)使用方法:I('id',0); //获取id参数自动判断get或者postI('','','htmlspecialchars'); //获取$_POST['name']I('get.'); //获取$_GET5.B() 执行某个行为B($name,$tag='',&$params=NULL)@param string $name 行为名称@param string $tag 标签名称(行为类无需传入)@param Mixed $params 传入的参数@return void6.C() 读取及设置配置参数C($name=null,$value=null,$default=null)@paramstring|array $name 配置变量@param mixed $value 配置值@param mixed $default 默认值@return mixed7.E() 抛出异常处理E($msg, $code=0)@param string $msg 异常消息@param integer $code 异常代码默认为0@return void8.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 mixed9.L()获取和设置语言定义(不区分大小写)L($name=null,$value=null)@paramstring|array $name 语言变量@param mixed $value 语言值或者变量@return mixed10.T()获取模版文件格式资源://模块@主题/控制器/操作T($template='',$layer='')@param string $name 模版资源地址@param string $layer 视图层(目录)名称@return string11.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 mixed12.A()A函数用于实例化控制器格式:[资源://][模块/]控制器A($name,$layer='',$level='')@param string $name 资源地址@param string $layer 控制层名称@param integer $level 控制器层次@return Controller|false13.R() 远程调用控制器的操作方法URL 参数格式 [资源://][模块/]控制器/操作R($url,$vars=array(),$layer='')@param string $url 调用地址@paramstring|array $vars 调用参数支持字符串和数组 @param string$layer 要调用的控制层名称@return mixed14.W()渲染输出WidgetW($name,$data=array())@param string $name Widget名称@param array $data 传入的参数@return void15.S()缓存管理S($name,$value='',$options=null)@param mixed $name 缓存名称,如果为数组表示进行缓存设置 @param mixed $value 缓存值@param mixed $options 缓存参数@return mixed16.F() 快速文件数据读取和保存针对简单类型数据字符串、数组F($name, $value='',$path=DATA_PATH)@param string $name 缓存名称@param mixed $value 缓存值@param string $path 缓存路径@return mixed。
wps首字母大写其余字母小写的函数
WPS首字母大写其余字母小写的函数随着WPS办公软件在各行各业中的广泛应用,越来越多的用户对WPS的函数有着更深入的需求。
其中,有一类常用函数是将字符串的首字母大写,其余字母小写,以符合常见的标题格式要求。
在WPS中,如何实现这一功能已成为用户关注的焦点之一。
一、问题定义在实际的工作中,我们往往需要将一段文字或标题进行格式化,其中之一就是将标题的首字母大写,而其他字母保持小写。
这种需求在编辑文章、整理数据时非常常见,因此需要一个简便而有效的方法来实现这一操作。
二、WPS的函数介绍WPS作为一款功能强大的办公软件,提供了丰富的函数库,可以满足用户在处理数据、编辑文档中的各种需求。
针对将字符串的首字母大写,其余字母小写的操作,WPS也提供了相应的函数来实现。
在WPS的函数库中,可以使用proper函数来实现这一目的。
该函数的语法如下:=PROPER(text)其中,text为要进行首字母大写的字符串。
三、函数的使用示例下面来举一个例子说明如何使用WPS中的proper函数来将字符串的首字母大写,其余字母小写。
假设有一个字符串"hello world",我们需要将其格式化为"Hello world",那么可以在一个空白单元格中输入以下公式:=PROPER("hello world")然后按下回车键,即可得到格式化后的结果。
四、注意事项在使用WPS中的proper函数时,需要注意以下几点:1. proper函数只会将每个词的首字母大写,其他字母小写,因此在本身已经符合要求的字符串中使用该函数,可能会出现错误的结果。
2. proper函数不会改变原始字符串的数据,只是返回格式化后的结果,因此需要将其结果赋值给新的单元格或者覆盖原来的数据。
3. 在实际使用中,可以将proper函数应用到多个单元格,实现批量格式化的操作。
五、总结WPS的proper函数提供了一个简单而方便的方法,可以快速将字符串的首字母大写,其余字母小写,以满足各种文本格式化的需求。
thinkphp 表名 大小写 窍门
thinkphp 表名大小写窍门
在ThinkPHP中,数据库表名的大小写处理是根据数据库的不同而有所不同。
一般来说,MySQL 在处理表名时是不区分大小写的,而其他一些数据库系统可能是区分大小写的。
为了在不同数据库系统上保持一致性,可以采取以下一些建议:
1. 统一使用小写:
-为了避免在不同数据库系统上出现大小写不一致的问题,建议在ThinkPHP中使用小写字母来命名数据库表。
2. 配置数据库连接参数:
-在ThinkPHP的数据库配置文件(通常是`database.php`)中,可以设置数据库连接参数。
确保在配置文件中使用小写的数据库表名。
```php
'params' => [
\PDO::ATTR_CASE => \PDO::CASE_LOWER,
],
```
上述配置会将数据库表名转换为小写,以保持一致性。
3. 使用驼峰命名规则:
-尽量使用驼峰命名规则,这样可以更好地和ThinkPHP的命名规范保持一致。
例如,表名为`user_info`,可以在模型中使用`UserInfo`来表示。
4. 手动设置表名:
-在ThinkPHP的模型中,你也可以手动设置表名,以确保一致性。
```php
protected $table = 'my_table';
```
在模型中设置表名,可以覆盖模型名称对应的默认表名。
总体而言,主要的建议是使用小写字母,并尽量保持一致性。
这样可以减少在不同数据库系统之间出现的潜在问题。
在实际开发中,最好查看数据库的大小写敏感性,以便根据需要进行相应的调整。
php的转大写函数
php的转大写函数
PHP中有一个内置函数可以用来将字符串转换为大写,那就是strtoupper() 函数。
这个函数接受一个字符串作为参数,并返回一个新的字符串,其中所有的字母都被转换为大写形式。
这个函数非常简单易用,只需要将需要转换的字符串作为参数传入即可。
下面是一个简单的示例:
$str = "hello, world!";
$upper_str = strtoupper($str);
echo $upper_str;
在这个例子中,变量 $str 中的字符串 "hello, world!" 会被转换为大写形式,并且通过 echo 输出出来。
这个函数在处理大小写不敏感的字符串时非常有用,比如在进行字符串比较时,可以先将字符串统一转换为大写或小写形式,再进行比较,以避免大小写不一致导致的问题。
需要注意的是,strtoupper() 函数只会将字符串中的字母字符
转换为大写形式,其他字符(如数字、标点符号等)不会受到影响。
另外,这个函数不会改变原始字符串,而是返回一个新的转换后的
字符串。
因此,如果需要保留转换后的字符串,需要将转换后的结
果赋值给一个新的变量。
总之,PHP中的 strtoupper() 函数是一个非常实用的函数,
可以方便地将字符串转换为大写形式,适用于各种字符串处理的场景。
thinkphp3.2离线文档解读
∙序言∙基础o获取ThinkPHPo环境要求o目录结构o入口文件o自动生成o模块o控制器o开发规范∙配置o配置格式o配置加载o读取配置o动态配置o扩展配置o批量配置∙架构o模块化设计o URL模式o多层MVCo CBD模式o命名空间o自动加载o应用模式o项目编译o系统流程∙路由o路由定义o规则路由o正则路由o静态路由o闭包支持o实例说明∙控制器o控制器定义o前置和后置操作o Action参数绑定o伪静态o URL大小写o AJAX返回o URL生成o跳转和重定向o输入变量o请求类型o空操作o空控制器模型o模型定义o模型实例化o字段定义o连接数据库o切换数据库o分布式数据库支持o连贯操作▪WHERE▪TABLE▪ALIAS▪DATA▪FIELD▪ORDER▪LIMIT▪PAGE▪GROUP▪HAVING▪JOIN▪UNION▪DISTINCT▪LOCK▪CACHE▪COMMENT▪RELATION o命名范围o CURD操作▪数据创建▪数据写入▪数据读取▪数据更新▪数据删除o ActiveRecordo字段映射o查询语言▪查询方式▪表达式查询▪快捷查询▪区间查询▪组合查询▪统计查询▪SQL查询▪动态查询▪子查询o自动验证o自动完成o参数绑定o虚拟模型o模型分层o视图模型o关联模型o高级模型∙视图o模板定义o模板主题o模板赋值o模板渲染o获取模板地址o获取内容o模板引擎∙模板o变量输出o系统变量o使用函数o默认值输出o使用运算符o标签库o模板继承o修改定界符o三元运算o包含文件o内置标签▪Volist标签▪Foreach标签▪For标签▪Switch标签▪比较标签▪范围判断标签▪IF标签▪Present标签▪Empty标签▪Defined标签▪Assign标签▪Define标签▪标签嵌套▪import标签使用PHP代码o原样输出o模板注释o模板布局o模板替换∙调试o页面Traceo Trace方法o变量调试o性能调试o错误调试o模型调试o浏览器调试插件o调试模式o日志记录o异常处理∙扩展o类库扩展o驱动扩展o行为扩展o标签扩展o Widget扩展∙部署o PATH_INFO支持o URL重写o模块部署o域名部署∙缓存o数据缓存o快速缓存o查询缓存o字段缓存o SQL解析缓存o静态缓存∙专题o SAEo RESTFulo RPCo图像处理o IP获取和定位o验证码o文件上传o多语言支持o日期和时间o Cookie支持o SESSION支持环境要求复制本页链接ThinkPHP支持的服务器和数据库环境:o支持Windows/Unix服务器环境o可运行于包括Apache、IIS和nginx在内的多种WEB服务器和模式o支持Mysql、MsSQL、PgSQL、Sqlite、Oracle、Ibase、Mongo以及PDO 等多种数据库和连接3.2版本的服务器环境要求如下:o PHP5.3以上版本框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。
python字母大写函数
python字母大写函数Python是一种高级编程语言,最初由Guido van Rossum在1989年开发出来。
Python是一种易于学习和使用的编程语言,拥有简洁而清晰的语法,许多常见的编程任务可以用比其他语言更少的代码量完成。
Python可以用于各种不同的应用程序开发,从简单的脚本到复杂的Web应用程序都可以用Python来实现。
在Python中,如果想要将字符串中的所有字母变成大写,可以使用upper()函数。
upper()函数是Python的一个内置函数,用于将字符串中的所有字母变成大写。
下面是一个示例,展示了如何使用upper()函数将字符串中的所有字母变成大写:```str = "Hello, World!"print(str.upper())```在这个示例中,我们首先定义了一个名为str的字符串变量,它包含了一个简单的字符串。
然后,我们使用upper()函数将字符串中的所有字母变成大写,最后使用print()函数将结果输出到控制台。
使用upper()函数非常简单,只需要将要转换的字符串作为参数传递给函数即可。
upper()函数会返回一个新字符串,其中所有的字母都被转换成了大写。
需要注意的是,upper()函数只会转换字符串中的字母,不会影响数字、标点符号或其他字符。
如果想要将整个字符串都转换成大写,包括数字、标点符号和其他字符,可以将整个字符串先转换成小写字母,然后再调用upper()函数。
下面是一个示例:```str = "Hello, 123!@#$"print(str.lower().upper())```在这个示例中,我们首先将字符串转换成小写字母,然后再使用upper()函数将整个字符串转换成大写。
由于upper()函数只会转换字母,因此我们需要先使用lower()函数将所有字符都转换成小写,以便于后续使用upper()函数将所有字符都转换成大写。
thinkphp模板语法
thinkphp模板语法ThinkPHP 是一款流行的轻量级 PHP 开发框架,它的模板语法非常简单,易于学习和使用。
下面我们来简单介绍一下 ThinkPHP 的模板语法。
一、模板常量1. __ROOT__:当前网站根目录例如:2. __APP__:当前项目入口文件```<form action="__APP__/User/login" method="post">```3. __URL__:当前网站完整的 URL 地址在模板中通过 {} 来输出变量:```{$name}```如果需要在变量中使用函数,则可以这样实现:在这个例子中,strtoupper 是一个 PHP 函数,用于将字符串转换为大写字母。
三、模板循环在模板中,可以通过 foreach 语句来进行循环:```<ul>{foreach $users as $user}<li>{$}</li>{/foreach}</ul>```在这个例子中,$users 是一个数组,它包含多个用户对象。
foreach 语句会依次循环数组中的每个元素,并输出相应的属性。
四、模板条件```{if $score >= 60}<p>及格了!</p>{/if}```在这个例子中,如果 $score 变量的值大于等于 60,就会输出一条信息。
五、模板文件包含可以在模板中包含其它模板文件:```{include file="header.html"}```六、PHP 代码在模板中也可以直接使用 PHP 代码:或者使用简单语法:需要注意的是,直接在模板中使用 PHP 代码虽然方便,但并不符合良好的编程习惯。
建议将业务逻辑代码放在控制器中,通过变量传递给视图层。
以上就是对 ThinkPHP 模板语法的简单介绍。
此外,ThinkPHP 还提供了众多实用的扩展,例如缓存、分页、表单验证等,这些扩展都大大简化了我们的开发工作,提高了开发效率。
python字符串首字母大写的函数
一、介绍Python字符串首字母大写的函数的必要性在实际的编程工作中,经常会遇到需要对字符串进行处理的情况。
而有时候,我们需要将字符串的首字母改为大写,这样可以使文本格式更加规范化,也更加符合审美要求。
Python作为一门流行的编程语言,提供了丰富的字符串处理函数,其中包括了可以实现首字母大写的函数。
二、介绍Python中实现字符串首字母大写的函数Python中有一个内置函数`capitalize()`可以实现字符串首字母大写的功能。
该函数的语法如下:```pythonstr.capitalize()```其中`str`表示需要进行首字母大写处理的字符串。
该函数没有任何参数,它会返回一个将字符串首字母大写后的新字符串,同时原字符串不发生改变。
对于字符串`"hello world"`,通过`capitalize()`函数处理后会得到新的字符串`"Hello world"`。
三、使用`capitalize()`函数时需要注意的问题在使用`capitalize()`函数时,需要注意一些特殊情况。
对于空字符串或者只包含空格的字符串,`capitalize()`函数会直接返回原字符串,不会进行任何改变。
在处理多个单词组成的字符串时,`capitalize()`函数只会将第一个单词的首字母大写,不会对其他单词进行处理。
如果需要对整个字符串进行首字母大写处理,需要先对字符串进行分割,再对每个单词分别进行处理。
四、实际场景中的应用举例假设我们需要处理一个句子,将其中的每个单词的首字母都改为大写。
可以使用如下代码来实现:```pythonsentence = "hello world"words = sentence.split()capitalized_words = [word.capitalize() for word in words]result = " ".join(capitalized_words)print(result)```运行以上代码会输出`"Hello World"`,即句子中每个单词的首字母都已经被改为大写。
thinkPHP编写规范
使用ThinkPHP开发的过程中应该尽量遵循下列命名规范:•类文件都是以.class.php为后缀(这里是指的ThinkPHP内部使用的类库文件,不代表外部加载的类库文件),使用驼峰法命名,并且首字母大写,例如DbMysql.class.php;•确保文件的命名和调用大小写一致,是由于在类Unix系统上面,对大小写是敏感的(而ThinkPHP在调试模式下面,即使在Windows平台也会严格检查大小写);•类名和文件名一致(包括上面说的大小写一致),例如 UserAction类的文件命名是UserAction.class.php, InfoModel类的文件名是InfoModel.class.php,并且不同的类库的类命名有一定的规范;•函数、配置文件等其他类库文件之外的一般是以.php为后缀(第三方引入的不做要求);•函数的命名使用小写字母和下划线的方式,例如 get_client_ip;•方法的命名使用驼峰法,并且首字母小写或者使用下划线“_”,例如 getUserName,_parseType,通常下划线开头的方法属于私有方法;•属性的命名使用驼峰法,并且首字母小写或者使用下划线“_”,例如 tableName、_instance,通常下划线开头的属性属于私有属性;•以双下划线“__”打头的函数或方法作为魔法方法,例如 __call 和 __autoload;•常量以大写字母和下划线命名,例如 HAS_ONE和 MANY_TO_MANY;•配置参数以大写字母和下划线命名,例如HTML_CACHE_ON;•语言变量以大写字母和下划线命名,例如MY_LANG,以下划线打头的语言变量通常用于系统语言变量,例如 _CLASS_NOT_EXIST_;•对变量的命名没有强制的规范,可以根据团队规范来进行;•ThinkPHP的模板文件默认是以.html 为后缀(可以通过配置修改);•数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如think_user 表和 user_name字段,类似 _username 这样的数据表字段可能会被过滤。
python字符串首字母大写的函数 -回复
python字符串首字母大写的函数-回复标题:Python字符串首字母大写的函数详解与实践在Python编程语言中,处理字符串是一项基础且频繁的任务。
其中一种常见的字符串操作是将字符串的首字母转换为大写,这在许多实际应用场景中极为有用,例如在格式化姓名、标题或者初始化每个单词首字母大写等场景。
Python内置的`str.capitalize()`函数就能很好地实现这一功能。
本文将深入探讨这个函数的工作原理,并通过实例演示如何使用它。
【一、Python字符串首字母大写的函数介绍】Python的`str.capitalize()`函数是一个内建方法,专门用于将字符串的第一个字符转换为大写,同时将其余所有字符转换为小写。
请注意,这个函数只对第一个字母进行操作,对于多词组成的字符串,仅转换第一个单词的首字母。
pythondef capitalize(s):return s.capitalize()【二、函数使用步骤及参数说明】1. 调用方式:`capitalize()`函数直接作用于字符串对象上,无需额外参数。
pythonmy_string = "hello world"capitalized_string = my_string.capitalize()print(capitalized_string) 输出:"Hello world"2. 返回值:此函数返回一个新的字符串,原字符串不会被改变。
3. 特殊情况处理:- 如果字符串为空或只有一个字符,则返回原字符串。
- 对于非ASCII字符(如Unicode字符),如果它们有大小写之分,`capitalize()`函数也会尝试进行正确转换。
【三、示例应用】下面通过几个示例来进一步了解`str.capitalize()`函数的应用:python示例1:单个单词首字母大写word = "python"capitalized_word = word.capitalize()print(capitalized_word) 输出:"Python"示例2:多个单词组成的短语,仅首单词首字母大写phrase = "learn python programming"capitalized_phrase = phrase.capitalize()print(capitalized_phrase) 输出:"Learn python programming"示例3:空字符串和单字符字符串empty_str = ""single_char_str = "a"print(empty_str.capitalize()) 输出:""print(single_char_str.capitalize()) 输出:"A"注意:如果需要将每个单词的首字母都转为大写,可以使用`title()`函数title_case_phrase = phrase.title()print(title_case_phrase) 输出:"Learn Python Programming"【四、注意事项与扩展】尽管`str.capitalize()`函数在大多数情况下能很好地完成任务,但需要注意的是,它仅针对英文句子的首字母大写规则设计,对于其他语言可能无法达到预期效果。
ThinkPHP数据操作指南
ThinkPHP 入门系列T T h h i i n n k k P P H H P F F r r a a m m e e w w o o r r k 1 1. .0D D a a t t a a A A c c c c e e s s s M M a a n n u u a a lT T h h i i n n k k P P H H P 1 1. .0数 数据 据操 操作 作指 指南 南编写:ThinkPHP 文档组最后更新:20080513目 目录录 11 版权信息...................................................................................................................................4 2 2 数据操作.. (5)2.1数据库访问层...................................................................................................................5 2.2表和主键.........................................................................................................................6 2.3属性访问.........................................................................................................................8 2.4连接数据库....................................................................................................................10 2.5使用 PDO.......................................................................................................................12 2.6ActiveRecord..................................................................................................................13 2.7普通查询.......................................................................................................................18 2.8条件查询.......................................................................................................................19 2.9区间查询.......................................................................................................................19 2.10组合查询....................................................................................................................20 2.11多字段查询 ................................................................................................................20 2.12统计查询....................................................................................................................21 2.13定位查询....................................................................................................................21 2.14 动态查询.. (22)2.15 SQL 查询 (22)2.16事务支持....................................................................................................................23 2.17延迟查询....................................................................................................................23 2.18 分布式数据库. (41)2.19 多数据库连接 (42)2.20 表间关联 (24)2.21 锁机制 (27)2.22 文本字段 (29)2.23 连贯操作 (29)2.24 聚合模型 (31)2.25 视图模型 (34)2.26 单表继承 (35)2.27 字段映射 (37)2.28 数据验证 (37)2.29 数据填充 (40)2.30 自动时间戳写入 (44)2.31 回调方法 (46)2.32 调试技巧 (47)2.33 查询技巧 (49)1 版权信息发布本资料须遵守开放出版许可协议 1.0 或者更新版本。
ThinkPHP字符串函数及常用函数汇总
ThinkPHP字符串函数及常⽤函数汇总本⽂汇总了ThinkPHP的字符串处理函数及其他⼀些常⽤函数,可供开发⼈员参考使⽤。
详情如下:get_client_ip()获取客户端的IP地址msubstr($str, $start=0, $length, $charset=”utf-8″, $suffix=true)$str:要截取的字符串$start=0:开始位置,默认从0开始$length:截取长度$charset=”utf-8″:字符编码,默认UTF-8$suffix=true:是否在截取后的字符后⾯显⽰省略号,默认true显⽰,false为不显⽰中⽂字符串截取:调⽤如下{$vo.title|msubstr=5,5,'utf-8′,false}解释:截取字符串$vo.title,从第5个字符开始,截取5个,编码为UTF-8,不显⽰省略号rand_string(len=6,type='',addChars='')产⽣随机字串type是随机类型,包括:0 字母 1 数字 2 ⼤写字母 3 ⼩写字母 4中⽂ 5混合(去掉了容易混淆的字符oOLl和数字01)addChars 附加的字符串build_verify (length=4,mode=1)创建随机验证码,mode参数⽤法和rand_string的type⼀致byte_format(size, dec=2)字节格式化把字节数格式为 B K M G T 描述的容易理解的⼤⼩is_utf8(string)检测字符串是否是utf8编码highlight_code(str,show=false)代码⾼亮h(text, tags = null)输出安全的Html代码ubb(Text)基本的UBB解析build_count_rand (number,length=4,mode=1)随机⽣成⼀组字符串remove_xss(val)移除Html代码中的XSS攻击list_to_tree(list, pk='id',pid = 'pid',child = '_child',root=0)把查询的数据集转换成树形列表数组, list表⽰查询的数据集(数组),pk表⽰主键名,pid表⽰⽗键名,child表⽰⼦列表的名称,默认是_child,root表⽰跟节点的主键值list_sort_by(list,field, sortby='asc')对查询的数据集排序,list表⽰查询的结果数据集(数组),field表⽰要排序的字段名称,sortby表⽰排序类型,包括asc正向排序 desc逆向排序 nat⾃然排序,默认为asclist_ search(list,condition)在查询的数据集中搜索数据,list表⽰查询的结果数据集(数组),condition表⽰查询条件,⽀持⽀持下⾯的查询⽅式数组⽅式如 array('var1'=>'value1', 'var2'=>'value2') 并且⽀持正则表达式array('name'=>'/[A-Z]/')URL⽅式如var1=value1&var2=value2send_http_status(status)发送http状态信息,status表⽰http状态值,例如302、404。
Thinkphp常用函数
Thinkphp 常用函数
A 函数(基本是Action 的简写)
A 函数是用来实例化我们的Action 类的,例如我们的程序有2个Action 分别是IndexAction 和TestAction ,在 IndexAction 中有个myHello 方法能够输出hello world ,如果我也想在TestAction 中也输出同样一段文字怎么办?最原始的方法首先我们导入
IndexAction.class.php 这个文件,然后new IndexAction ,最后调用myHello 方法才行。
代码一般为 :
PHP 代码
那么,如果我们用A 函数,怎么写呢?
PHP 代码
?("@.Action.Index"); //导入本项目目录下Action 目录下的Index.class.php 文件。
class TestAction extends Action { public function index () { $index=new IndexAction();//实例化IndexAction echo $index->myHello();//调用myHello()方法 } } ?>
class TestAction extends
Action { public function index ()
{
$index=A("Index");
echo $index->myHello(); } } ?>
?>。
ThinkPHP-1基础
官方给出了一个标准的入口文件写法: <?php // 定义ThinkPHP框架路径(相对于入口文件) define('THINK_PATH','./ThinkPHP/'); //定义项目名称和路径 define('APP_NAME','MY_APP'); define('APP_PATH','./'); // 加载框架入口文件 require THINK_PATH.'ThinkPHP.php'; //实例化一个网站应用实例 // $app = new app(); // $app->run(); App::run(); //与上面等价 ?>
ThinkPHP入门 ThinkPHP入门
ThinkPHP
简介
ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级 PHP开发框架,遵 循Apache2开源协议发布,是为了敏捷 WEB应用开发和简化企业级应用开发而诞生的 。拥有众多的优秀功能和特性,经历了三年多发展的同时,在社区团队的积极参与下, 在易用性、扩展性和性能方面 不断优化和改进,众多的典型案例确保可以稳定用于商 业以及门户级的开发。 ThinkPHP借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模 式,采用单一入口模式等,融合了Struts的Action思想和 JSP的TagLib(标签库)、 RoR的ORM映射和ActiveRecord模式,封装了CURD和一些常用操作,在项目配置、 类库导入、模版引擎、 查询语言、自动验证、视图模型、项目编译、缓存机制、SEO 支持、分布式数据库、多数据库连接和切换、认证机制和扩展性方面均有独特的表 现 。
(thinkPHP)PHP常用函数大全
(thinkPHP)PHP常⽤函数⼤全usleep() 函数延迟代码执⾏若⼲微秒。
unpack() 函数从⼆进制字符串对数据进⾏解包。
uniqid() 函数基于以微秒计的当前时间,⽣成⼀个唯⼀的 ID。
time_sleep_until() 函数延迟代码执⾏直到指定的时间。
time_nanosleep() 函数延迟代码执⾏若⼲秒和纳秒。
sleep() 函数延迟代码执⾏若⼲秒。
show_source() 函数对⽂件进⾏语法⾼亮显⽰。
strip_whitespace() 函数返回已删除 PHP 注释以及空⽩字符的源代码⽂件。
pack() 函数把数据装⼊⼀个⼆进制字符串。
ignore_user_abort() 函数设置与客户机断开是否会终⽌脚本的执⾏。
highlight_string() 函数对字符串进⾏语法⾼亮显⽰。
highlight_file() 函数对⽂件进⾏语法⾼亮显⽰。
get_browser() 函数返回⽤户浏览器的性能。
exit() 函数输出⼀条消息,并退出当前脚本。
eval() 函数把字符串按照 PHP 代码来计算。
die() 函数输出⼀条消息,并退出当前脚本。
defined() 函数检查某常量是否存在。
define() 函数定义⼀个常量。
constant() 函数返回常量的值。
connection_status() 函数返回当前的连接状态。
connection_aborted() 函数检查是否断开客户机。
zip_read() 函数读取打开的 zip 档案中的下⼀个⽂件。
zip_open() 函数打开 ZIP ⽂件以供读取。
zip_entry_read() 函数从打开的 zip 档案项⽬中获取内容。
zip_entry_open() 函数打开⼀个 ZIP 档案项⽬以供读取。
zip_entry_name() 函数返回 zip 档案项⽬的名称。
zip_entry_filesize() 函数返回 zip 档案项⽬的原始⼤⼩(在压缩之前)。
php大小写转换函数
php大小写转换函数如何使用PHP实现大小写转换函数?随着互联网技术的发展,PHP作为一种非常流行的编程语言,它的使用也越来越广泛。
而在PHP开发过程中,一个非常常见的需求就是对字符串进行大小写转换。
而PHP中已经内置了一些常用的字符串大小写转换函数,如strtoupper()和strtolower()等。
但是,有时候这些函数并不能满足我们的需要,这时候我们就需要自己实现一个大小写转换函数了。
一个简单的实现方式是使用PHP中的字符串函数mb_strlen()和mb_substr()来实现。
具体代码如下:```function changeCase($str){$len = mb_strlen($str);$result = '';for($i = 0; $i < $len; $i++){$char = mb_substr($str, $i, 1);if(preg_match('/^[A-Za-z]+$/', $char)){$result .= ord($char) > 96 ?strtoupper($char) : strtolower($char);}else{$result .= $char;}}return $result;}```在这个函数中,我们使用了正则表达式来判断当前字符是否为字母。
如果是字母,那么就判断它的ASCII码值是否大于96,如果是,那么就把它转换成大写字母,否则就转换成小写字母。
如果不是字母,那么就直接拼接到结果字符串中。
最后返回结果字符串即可。
总体来说,尽管这个函数看起来有点复杂,但是它是可以完整实现大小写转换功能的。
如果你需要在PHP中实现字符串大小写转换功能,可以考虑使用这个函数。
文章标题:PHP大小写转换函数详解在PHP开发过程中,一个非常常见的需求就是对字符串进行大小写转换。
PHP中已经内置了一些常用的字符串大小写转换函数,如strtoupper()和strtolower()等。
ThinkPHP大写单字母函数
ThinkPHP大写单字母函数ThinkPHP 单字母函数A() 内部实例化控制器D() 实例化自定义模型类M() 实例化一个基础模型类R()调用某个控制器的操作方法L()启用多语言的情况下,设置和获取当前的语言定义N()计数器方法G()包括标记位置和区间统计两个功能F()用于简单数据缓存,并且只能支持文件形式C()用于设置、获取,以及保存配置参数方法详解:A方法用于在内部实例化控制器,调用格式:A('[项目://][分组/]模块','控制器层名称')最简单的用法:$U SER =A('U SER');表示实例化当前项目的UserAction控制器(这个控制器对应的文件位于Lib/Action/UserAction.class.php),如果采用了分组模式,并且要实例化另外一个Admin 分组的控制器可以用:$U SER =A('A DMIN/U SER');也支持跨项目实例化(项目的目录要保持同级)$U SER =A('A DMIN://U SER');表示实例化Admin项目下面的UserAction控制器3.1版本增加了分层控制器的支持,所以还可以用A方法实例化其他的控制器,例如:$U SER =A('U SER','E VENT);实例化UserEvent控制器(对应的文件位于Lib/Event/UserEvent.class.php)。
实例化控制器后,就可以调用该控制器中的方法,不过需要注意的情况是,在跨项目调用的情况下,如果你的操作方法有针对当前控制器的特殊变量操作,会有一些未知的问题,所以,一般来说,官方建议需要公共调用的控制器层单独开发,不要有太多的依赖关系。
D方法应该是用的比较多的方法了,用于实例化自定义模型类,是ThinkPHP框架对Model类实例化的一种封装,并实现了单例模式,支持跨项目和分组调用,调用格式如下:D('[项目://][分组/]模型','模型层名称')方法的返回值是实例化的模型对象。
Thinkphp中的I函数(Thinkphp3.2.3版本)
Thinkphp中的I函数(Thinkphp3.2.3版本)I 函数的作⽤是获取系统变量,必要时还可以对变量值进⾏过滤及强制转化,I 函数的语法格式:I('变量类型.变量名/修饰符',['默认值'],['过滤⽅法或正则'],['额外数据源'])⼀、获取变量在PHP中获取变量值的⽅法有很多,⽐如:$_GET['变量名'],$_POST['变量名'],$_SESSION['变量名'],$_COOKIE['变量名'],$_SERVER['变量名'] 都可以获取相应的变量值,但在thinkphp中为了安全的原因建议统⼀使⽤ I 函数来获取变量值。
例如:获取 URL 地址栏中参数 id 的值,在php中我们⽤ $_GET['id'] 来获取,在thinkphp中我们可以⽤ I('get.id') 来获取。
同样的, $_POST['id'] 就⽤ I('post.id') 取代,I 函数的语法格式中的变量类型就是指的像 get 和 post 之类的请求⽅式,类似的变量类型还包括:变量类型含义get获取GET参数post获取POST参数param⾃动判断请求类型获取GET、POST或者PUT参数request获取REQUEST 参数put获取PUT 参数session获取 $_SESSION 参数cookie获取 $_COOKIE 参数server获取 $_SERVER 参数globals获取 $GLOBALS参数path获取 PATHINFO模式的URL参数data获取其他类型的参数,需要配合额外数据源参数如果要获取的变量类型是get、post 或 put,可以统⼀⽤ param 变量类型,param 变量类型是框架特有的⽀持⾃动判断当前请求类型的变量获取⽅式,例如:I('param.id') ,如果当前请求类型是GET,那么等效于 $_GET['id'],如果当前请求类型是POST或者PUT,那么相当于获取 $_POST['id'] 或者 PUT参数id。
Thinkphp各个版本总结------终结版本!
Thinkphp各个版本总结------终结版本!Thinkphp各个版本总结:tp3.2.3,tp5.0,tp5.1差异终得闲暇时间(也就两三个⼩时)能够进⾏这6个⽉对tp框架的使⽤总结了:1.框架隐藏模块差异:tp3.2.3:其实还⽐较⿇烦//隐藏⼊⼝⽂件在与⼊⼝⽂件同级⽬录,将.htaccess⽂件中RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]修改为RewriteRule ^(.*)$ index.php?s=/$1 [QSA,PT,L]//配置设置默认模块访问模块‘DEFAULT_MODULE’=> 'Home'(Home为模块名称),//隐藏模块,关闭多模块访问‘MULTI_MODULE’=> false,//改变URL模式为重写模式'URL_MODEL' => 2,(注意要隐藏哪个模块在哪个模块下的配置⽂件下配置,否则关闭多模块访问会出现其他模块不能被访问)//在公共的配置⽂件配置,多模块访问'MODULE_ALLOW_LIST' => array( '模块名称1','模块名称2','模块名称3'),tp5:可以看见其中稳了隐藏url中的模块名我们需要进⾏设置的是⼀个BIND_MOULE常量define('APP_PATH', __DIR__ . '/../application/');define('BIND_MODULE','home');// define('CONTROLLER_NAME',\think\Request::instance()->controller());// 加载框架引导⽂件require __DIR__ . '/../thinkphp/start.php';tp5.1:隐藏模块名所需要的是利⽤Container中的链式⽅法进⾏bind⽅法中的绑定模块namespace think;// 加载基础⽂件require __DIR__ . '/../thinkphp/base.php';// ⽀持事先使⽤静态⽅法设置Request对象和Config对象// 执⾏应⽤并响应(5.1在此⽤bind实现隐藏模块名)Container::get('app')->bind('index')->run()->send();2.模板主题的设置思路是说⼿机端和电脑端在base的控制器中区别之后改变配置的模板路径tp3.2.3(极为简单):此刻你的$this->display();路径就是对应的moule/view/m/ 下的路径了if (is_mobile()) {//设置默认主题为 mC('DEFAULT_THEME','m');}tp5及以上:模板主题的思路是⾃动适配view的路径//模板主题的切换(适配各个平台以及双端)$theme = Env::get('module_path').'view/'.(get_platform()).'/'.(is_mobile()?'m/':'web/');$this->view->config('view_path',$theme);3.助⼿函数的升级(字母函数的升级)tp3.2.3:很明显⼤家都知道有所谓的字母函数可以进⾏使⽤,但是其实好⽤归好⽤,违反了许多代码的规范和习惯tp5以上由于我公司统⼀优先级是助⼿函数优先所以我也发掘了⼀些助⼿函数的差异:3.2版本 5.0版本C configE exceptionG debugL langT废除I inputN废除D modelM dbA controllerR actionB废除U urlW widgetS cacheF废除tp5.1以上:助⼿函数描述abort 中断执⾏并发送HTTP状态码action 调⽤控制器类的操作app 快速获取容器中的实例⽀持依赖注⼊behavior 执⾏某个⾏为bind 快速绑定对象实例cache 缓存管理call 调⽤反射执⾏callable ⽀持依赖注⼊class_basename 获取类名(不包含命名空间)class_uses_recursive 获取⼀个类⾥所有⽤到的traitconfig 获取和设置配置参数container 获取容器对象实例controller 实例化控制器cookie Cookie管理db 实例化数据库类debug 调试时间和内存占⽤dump 浏览器友好的变量输出env 获取环境变量(V5.1.3+)exception 抛出异常处理halt 变量调试输出并中断执⾏input 获取输⼊数据⽀持默认值和过滤json JSON数据输出jsonp JSONP数据输出lang 获取语⾔变量值model 实例化Modelparse_name 字符串命名风格转换redirect 重定向输出request 实例化Request对象response 实例化Response对象route 注册路由规则(V5.1.3+)session Session管理token ⽣成表单令牌输出trace 记录⽇志信息trait_uses_recursive 获取⼀个trait⾥所有引⽤到的traiturl Url⽣成validate 实例化验证器view 渲染模板输出widget 渲染输出Widgetxml XML数据输出其中要重点说的是request()这个助⼿函数!:tp3.2.3的CONTROLLER_NAME和ACTION_NAME在tp5以上都已经进⾏了废除tp5以上的获取⽅法:requset()->controller();request()->action();当然别忘了在模板⾥⾯要{:requset()->controller()}{:requset()->action()}当然还有的就是Request类的use:tp5.0版本:use think\Request;tp5.1版本:use think\facade\Env;然后就是Request::isAjax()Request::isGet()Request::isPost()...助⼿函数:request()->isGet()request()->isPost()request()->isAjax()其中很多tp5.0只要use之后就能使⽤的类静态调⽤⽅式在tp5.1你发现不⾏此时你需要查看⼿册中这个类是不是有facade,有得话就在think\后加上facade\,有的话你就加上去吧。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ThinkPHP 单字母函数A() 内部实例化控制器D() 实例化自定义模型类M() 实例化一个基础模型类R()调用某个控制器的操作方法L()启用多语言的情况下,设置和获取当前的语言定义N()计数器方法G()包括标记位置和区间统计两个功能F()用于简单数据缓存,并且只能支持文件形式C()用于设置、获取,以及保存配置参数方法详解:A方法用于在内部实例化控制器,调用格式:A('[项目://][分组/]模块','控制器层名称')最简单的用法:$U SER =A('U SER');表示实例化当前项目的UserAction控制器(这个控制器对应的文件位于Lib/Action/UserAction.class.php),如果采用了分组模式,并且要实例化另外一个Admin 分组的控制器可以用:$U SER =A('A DMIN/U SER');也支持跨项目实例化(项目的目录要保持同级)$U SER =A('A DMIN://U SER');表示实例化Admin项目下面的UserAction控制器3.1版本增加了分层控制器的支持,所以还可以用A方法实例化其他的控制器,例如:$U SER =A('U SER','E VENT);实例化UserEvent控制器(对应的文件位于Lib/Event/UserEvent.class.php)。
实例化控制器后,就可以调用该控制器中的方法,不过需要注意的情况是,在跨项目调用的情况下,如果你的操作方法有针对当前控制器的特殊变量操作,会有一些未知的问题,所以,一般来说,官方建议需要公共调用的控制器层单独开发,不要有太多的依赖关系。
D方法应该是用的比较多的方法了,用于实例化自定义模型类,是ThinkPHP框架对Model类实例化的一种封装,并实现了单例模式,支持跨项目和分组调用,调用格式如下:D('[项目://][分组/]模型','模型层名称')方法的返回值是实例化的模型对象。
D方法可以自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类,如果不存在,则会实例化Model基类,同时对于已实例化过的模型,不会重复去实例化。
D方法最常用的用法就是实例化当前项目的某个自定义模型,例如://实例化U SER模型$U SER =D('U SER');会导入当前项目下面的Lib/Model/UserModel.class.php文件,然后实例化UserModel 类,所以,实际上的代码可能和下面的等效:IMPORT('@.M ODEL.U SER M ODEL');$U SER = NEW U SER M ODEL();但是如果使用D方法的话,如果这个UserModel类不存在,则会自动调用NEW M ODEL('U SER');并且第二次调用的时候无需再次实例化,可以减少一定的对象实例化开销。
D方法可以支持跨分组和项目实例化模型,例如://实例化A DMIN项目的U SER模型D('A DMIN://U SER')//实例化A DMIN分组的U SER模型D('A DMIN/U SER')注意:要实现跨项目调用模型的话,必须确保两个项目的目录结构是并列的。
3.1版本开始,由于增加了分层模型的支持,所以D方法也可以实例化其他的模型,例如://实例化U SER S ERVICE类$U SER =D('U SER','S ERVICE');//实例化U SER L OGIC类$U SER =D('U SER','L OGIC');D('U SER','S ERVICE');会导入Lib/Service/UserService.class.php,并实例化,等效于下面的代码:IMPORT('@.S ERVICE.U SER S ERVICE');$U SER = NEW U SER S ERIVCE();M方法用于实例化一个基础模型类,和D方法的区别在于:1、不需要自定义模型类,减少IO加载,性能较好;2、实例化后只能调用基础模型类(默认是M ODEL类)中的方法;3、可以在实例化的时候指定表前缀、数据库和数据库的连接信息;D方法的强大则体现在你封装的自定义模型类有多强,不过随着新版T HINK PHP框架的基础模型类的功能越来越强大,M方法也比D方法越来越实用了。
M方法的调用格式:M('[基础模型名:]模型名','数据表前缀','数据库连接信息')我们来看下M方法具体有哪些用法:1、实例化基础模型(M ODEL)类在没有定义任何模型的时候,我们可以使用下面的方法实例化一个模型类来进行操作://实例化U SER模型$U SER =M('U SER');//执行其他的数据操作$U SER->SELECT();这种方法最简单高效,因为不需要定义任何的模型类,所以支持跨项目调用。
缺点也是因为没有自定义的模型类,因此无法写入相关的业务逻辑,只能完成基本的CURD操作。
$U SER =M('U SER');其实等效于:$U SER = NEW M ODEL('U SER');表示操作THINK_USER表。
M方法和D方法一样也有单例功能,多次调用并不会重复实例化。
M方法的模型名参数在转换成数据表的时候会自动转换成小写,也就是说T HINK PHP的数据表命名规范是全小写的格式。
2、实例化其他公共模型类第一种方式实例化因为没有模型类的定义,因此很难封装一些额外的逻辑方法,不过大多数情况下,也许只是需要扩展一些通用的逻辑,那么就可以尝试下面一种方法。
$U SER =M('C OMMON M ODEL:U SER');改用法其实等效于:$U SER = NEW C OMMON M ODEL('U SER');因为系统的模型类都能够自动加载,因此我们不需要在实例化之前手动进行类库导入操作。
模型类C OMMON M ODEL必须继承M ODEL。
我们可以在C OMMON M ODEL类里面定义一些通用的逻辑方法,就可以省去为每个数据表定义具体的模型类,如果你的项目已经有超过100个数据表了,而大多数情况都是一些基本的CURD操作的话,只是个别模型有一些复杂的业务逻辑需要封装,那么第一种方式和第二种方式的结合是一个不错的选择。
3、传入表前缀、数据库和其他信息M方法有三个参数,第一个参数是模型名称(可以包括基础模型类和数据库),第二个参数用于设置数据表的前缀(留空则取当前项目配置的表前缀),第三个参数用于设置当前使用的数据库连接信息(留空则取当前项目配置的数据库连接信息),例如:$U SER =M('DB2.U SER','THINK_');表示实例化M ODEL模型类,并操作DB2数据库中的THINK_USER表。
如果第二个参数留空或者不传,表示使用当前项目配置中的数据表前缀,如果操作的数据表没有表前缀,那么可以使用:$U SER =M('DB1.U SER',NULL);表示实例化M ODEL模型类,并操作DB1数据库中的USER表。
如果你操作的数据库需要不同的用户账号,可以传入数据库的连接信息,例如:$U SER =M('U SER','THINK_','MYSQL://USER_A:1234@LOCALHOST:3306/THINKPHP');表示基础模型类用M ODEL,然后对THINK_USER表进行操作,用USER_A账号进行数据库连接,操作数据库是THINKPHP。
第三个连接信息参数可以使用DSN配置或者数组配置,甚至可以支持配置参数。
例如,在项目配置文件中配置了:'DB_CONFIG'=>'MYSQL://USER_A:1234@LOCALHOST:3306/THINKPHP';则可以使用:$U SER =M('U SER','THINK_','DB_CONFIG');基础模型类和数据库可以一起使用,例如:$U SER =M('C OMMON M ODEL:DB2.U SER','THINK_');如果要实例化分层模型的话,利用公共模型类的方式,我们可以使用:M('U SER L OGIC:U SER');来实例化U SER L OGIC,虽然这样做的意义不大,因为可以用D('U SER','L OGIC');实现同样的功能。
R方法用于调用某个控制器的操作方法,是A方法的进一步增强和补充。
R方法的调用格式:R('[项目://][分组/]模块/操作','参数','控制器层名称')例如,我们定义了一个操作方法为:1.CLASS U SER A CTION EXTENDS A CTION {2.PUBLIC FUNCTION DETAIL($ID){3.RETURN M('U SER')->FIND($ID);4. }5. }那么就可以通过R方法在其他控制器里面调用这个操作方法(一般R方法用于跨模块调用)1.$DATA = R('U SER/DETAIL',ARRAY('5'));表示调用U SER控制器的DETAIL方法(DETAIL方法必须是PUBLIC类型),返回值就是查询ID为5的一个用户数据。
如果你要调用的操作方法是没有任何参数的话,第二个参数则可以留空,直接使用:1.$DATA = R('U SER/DETAIL');也可以支持跨分组和项目调用,例如:1.R('A DMIN/U SER/DETAIL',ARRAY('5'));表示调用A DMIN分组下面的U SER控制器的DETAIL方法。
1.R('A DMIN://U SER/DETAIL',ARRAY('5'));表示调用A DMIN项目下面的U SER控制器的DETAIL方法。
官方的建议是不要在同一层多太多调用,会引起逻辑的混乱,被公共调用的部分应该封装成单独的接口,可以借助3.1的新特性多层控制器,单独添加一个控制器层用于接口调用,例如,我们增加一个A PI控制器层,1.CLASS U SER A PI EXTENDS A CTION {2.PUBLIC FUNCTION DETAIL($ID){3.RETURN M('U SER')->FIND($ID);4. }5. }然后,使用R方法调用1.$DATA = R('U SER/DETAIL',ARRAY('5'),'A PI');也就是说,R方法的第三个参数支持指定调用的控制器层。