自己定义一个方法仿写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. POSIX多线程编程(上)-基本概念

    线程概念 我们把正在计算机中执行的程序叫做"进程"(Process) ,而不将其称为程序(Program).所谓"线程"(Thread),是"进程&q ...

  2. centos 卸载vsftpd方法

    centos 卸载vsftpd方法 在服务器上安装了vsftpd,配置出错需要卸载vsftpd.卸载vsftpd的命令如下: 1 [root@localhost ~]# rpm -aq vsftpd2 ...

  3. python里面的几个编码函数

    时不时的被编码折腾一下 >>> print urllib.quote('中国') %E4%B8%AD%E5%9B%BD >>> s = '%E4%B8%AD%E5% ...

  4. 在MAC中安装Compass的方法 (转)

    在MAC中通过gem命令安装compass时会出异常,原因是compass版本更新了,一些运行时所用到的依赖软件的版本没能得到更新,故而出现错误.例如,用以下命令安装compass: $ gem in ...

  5. Linux下eclipse的安装以及配置

    在安装好jdk并配置好后,就可以进行eclipse的安装了,其步骤如下: 1.下载eclipse 我所用的eclipse为:eclipse-dsl-juno-SR1-linux-gtk.tar 2. ...

  6. 简单的Ajax例子

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. Android Service with Delphi 10 Seattle

    http://delphi.org/2015/09/minimalistic-android-service-with-delphi-10-seattle/ http://delphi.org/201 ...

  8. MyGui 3.2.0(OpenGL平台)的编译(五篇文章)

    MyGui是一个用来创建用户图形界面的库,用于游戏和3D应用程序.这个库的主要目标是达到:快速.灵活.易用. 1.下载准备: 源代码:http://svn.code.sf.net/p/my-gui/c ...

  9. Android list1去除list2中的元素

    public static void main(String[] args) { List<String> firList = new ArrayList<String>(); ...

  10. 页面上动态编译及执行java代码

    本文地址:http://www.cnblogs.com/liaoyu/p/real-time-compile-and-run-java-code-web-app.html 最近看到同事在页面上编译和执 ...