自己定义一个方法仿写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. 带节假日JS万年历控件代码

    <form name="CLD" class="content"> <table width="100%" border= ...

  2. oracle dblink 配置两个ip

    create database link test_link connect to xx identified by xx using '(DESCRIPTION = (ADDRESS_LIST = ...

  3. chr(i) 返回整数i对应的ASCII字符

    >>> a 122 >>> b 344 >>> c = chr(a) >>> c 'z' 假如整数“i”超过了256将会爆出一个 ...

  4. C#中文转换成拼音英文

    #region 0.1 中文转到英文 + static string GetPinYing(string characters) /// <summary> /// 中文转到英文 /// ...

  5. Web.xml配置详解之context-param(转)

    本文转自:http://blog.csdn.net/liaoxiaohua1981/article/details/6759206 格式定义: <context-param> <pa ...

  6. easyui源码翻译1.32--Messager(消息窗口)

    前言 使用$.messager.defaults重写默认值对象.下载该插件翻译源码 消息窗口提供了不同的消息框风格,包含alert(警告框), confirm(确认框), prompt(提示框), p ...

  7. Android 发送HTTP GET POST 请求以及通过 MultipartEntityBuilder 上传文件

    折腾了好几天的 HTTP 终于搞定了,经测试正常,不过是初步用例测试用的,因为后面还要修改先把当前版本保存在博客里吧. 其中POST因为涉及多段上传需要导入两个包文件,我用的是最新的 httpmine ...

  8. Android进阶篇-内存管理

    很多时候我们需要考虑Android平台上的内存管理问题,Dalvik VM给每个进程都分配了一定量的可用堆内存,当我们处理一些耗费资源的操作时可能会产生OOM错误(OutOfMemoryError)这 ...

  9. mapreduce: InputFormat详解 -- RecordReader篇

    InputFormat是MapReduce中一个很常用的概念,它在程序的运行中到底起到了什么作用呢? InputFormat其实是一个接口,包含了两个方法: public interface Inpu ...

  10. 海量数据的二度人脉挖掘算法(Hadoop 实现)

    最近做了一个项目,要求找出二度人脉的一些关系,就好似新浪微博的“你可能感兴趣的人” 中,间接关注推荐:简单描述:即你关注的人中有N个人同时都关注了 XXX . 在程序的实现上,其实我们要找的是:若 U ...