自己定义一个方法仿写thinkphp的I 方法

<?php
function I($key="",$default='',$function="")
{
$method="get";//默认是get的方式取
if(strpos($key,".")!==false)
{
list($method,$key)=explode(".",$key,2);//如果有传入get post 则拆分
if(!in_array($method,array("get","post")))
{
$method="get";//强制取参方式为 get post中的一种
}
}
if($method==="get")
{
$variables=$_GET;//get方式
}elseif ($method==="post")
{
$variables=$_POST;//post方式
}else
{
return null;//否则取不到 返回null
}
$result= isset($variables[$key])?$variables[$key]:null;//从超全局变量中获取
if($function){$result=$function($result);}//如果有过滤方法 则使用过滤方法
if($default==='' && $result===null){$result=$default;}//如果取参数为空 而且该参数设置有默认值 则使用默认值
return $result;//返回参数
}
?>

调用的时候 I("post.id")  I("get.id") 即可

如果想接受多个 可以再定义一个函数 ALL_I

<?php
function ALL_I($key_list=array(),$method="post")
{
$data=array();//定义结果数组
if(!empty($key_list))
{
//键字段数组不为空的情况下遍历接收
foreach ($key_list as $key => $v)
{
$data[$v]=I($method.".".$v);//将参数提取方式和键组合在一起通过I 函数获取
}
}
return $data;//返回数组
}
?>

调用的时候 ALL_I(array("id","name","user"),"get")  即可

仿写thinkphp的I方法的更多相关文章

  1. 如何仿写thinkphp的C方法?

    config.php代码如下: <?php return array( 'db_user'=>'root', 'db_pass'=>'root', 'db_name'=>'te ...

  2. 如何仿写thinkphp的S方法?

    代码如下: <?php $info=S("name","lizhaoyao"); $name=S("name"); var_dump( ...

  3. ThinkPHP + Discuz 整合方法

    ThinkPHP + Discuz 整合方法以下是Discuz6的整合方法,discuz5请按照里面的说明进行相应的修改,也可以使用了. 1.在项目的action目录下信件PublicAction.c ...

  4. ASP.NET WebAPI 14 仿写Filter管道

    WebAPI中有设计了几种管道(Channel),大概如下:HttpMessageHandler,ActionFilter管道,ExceptionFilter管道.在三种管道中HttpMessageH ...

  5. thinkphp中limit方法

    limit方法也是模型类的连贯操作方法之一,主要用于指定查询和操作的数量,特别在分页查询的时候使用较多.ThinkPHP的limit方法可以兼容所有的数据库驱动类的. 用法 限制结果数量 例如获取满足 ...

  6. ThinkPHP中U方法与url的四种访问模式

     ThinkPHP中U方法的用处主要是完成对url地址的组装,在模板中使用U方法而不是固定写死URL地址的好处在于,一旦你的环境变化或者参数设置改变,你不需要更改模板中的任何代码.在模板中的调用格式需 ...

  7. 仿写Windows7桌面和任务栏 HTML5+CSS3+Jquery实现

    过去一段时间零零散散的自学了一点点jquery的相关用法,基本上属于用到哪个了,就去查然后就学一点,没有系统的学过,深入的用法也不是特别了解,毕竟javascript基础就比较薄弱.经过一段时间的零敲 ...

  8. 安卓开发学习笔记(七):仿写腾讯QQ登录注册界面

    这段代码的关键主要是在我们的相对布局以及线性布局上面,我们首先在总体布局里设置为线性布局,然后再在里面设置为相对布局,这是一个十分常见的XML布局模式. 废话不多说,直接上代码:一.activity. ...

  9. ThinkPHP项目 公共方法存放位置

    ThinkPHP项目公共方法写在   根目录-> app-> common 里面 ThinkPHP模板公共方法卸载   根目录->app->模块名称->common  里 ...

随机推荐

  1. Delphi XE5 android 图解为Android应用制作签名

    本文摘自 http://redboy136.blog.163.com/blog/static/107188432201381872820132 要发布android应用,必须做签名的.看一下具体的操作 ...

  2. 国内静态文件CDN服务介绍 国内js公共库

    国内静态文件CDN服务介绍 新浪SAE  介绍页 文件页 百度云 介绍页 七牛云存储介绍页 优势,可以提交没有的库,支持https,但证书不可信. 又拍云 介绍页 建议使用阿里云OSS自己上传所需文件 ...

  3. DataTable转换List<T>集合的方法

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data; ...

  4. MemoryStream类

    转自:http://www.cnblogs.com/kissdodog/archive/2013/01/20/2868864.html MemoryStream 是一个特例,MemoryStream中 ...

  5. 总结一下SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法

    总结一下SQL语句中引号(').quotedstr().('').format()在SQL语句中的用法 日期:2005年6月1日 作者:seasky212 总结一下SQL语句中引号(').quoted ...

  6. HDU 4009 不定根最小树形图

    讲一下建图过程,首先建立一个超级源点S,对于这个源点,向每个HOUSE连一条有向边,权值为该HOUSE建立WELL的费用,即高度*X. 然后每个可以连边的WELL之间,费用为曼哈顿距离*Y,然后考虑两 ...

  7. wzplayer V1.6正式版(无限制)不支持加密版本 2014-07-08

    2014-07-08 修复部分视频倾斜问题,同时给受影响的客户给予更新. wzplayer V1.6正式版(无限制)不支持加密版本 发布于官方,下载地址wzplayer V1.6正式版(无限制)不支持 ...

  8. Getting Started Tutorial

    Getting Started Tutorial The topics contained in this section are intended to give you quick exposur ...

  9. Android开发UI之Fragment-Tabbed Activity的使用

    使用ADT新建的时候,可以选择Tabbed Activity,选择新建一个工程. 新建的工程中,选择不同的Tab页显示不同的内容,主要是通过SectionsPagerAdapter类中的Fragmen ...

  10. Linux内核与根文件系统的关系

    开篇题外话:对于Linux初学者来说,这是一个很纠结的问题,但这也是一个很关键的问题!         一语破天机: “尽管内核是 Linux 的核心,但文件却是用户与操作系统交互所采用的主要工具.这 ...