获取参数
函数mparam
用来取必传参数(m表示mandatory),参数既可以用URL参数,也可以用POST参数传递。如果是取一个可选参数,可以用param
函数。
与直接用php的$_GET
等变量相比,param/mparam可指定参数类型,如
// 取id参数,特别地,对id参数会返回一个整数。
$id = param("id"); // 请求参数为"id=3", 返回3, 不是字符串"3"
// 后缀"/i"要求该参数为整数类型。第二个参数指定缺省值,如果请求中没有该参数就使用缺省值。
$svcId = param("svcId/i", 99); // 请求参数为"svcId=3", 返回3, 不是字符串"3"
// 后缀"/b"要求该参数布尔型,为0或1,返回true/false
$wantArray = param("wantArray/b", false); // 请求参数为"wantArray=1", 返回true
// 后缀"/dt"或"/tm"表示日期时间类型(支持格式可参考strtotime函数), 返回timestamp类型整数。
$startTm = param("startTm/dt", time()); // 请求参数为"startTm=2016-9-10 10:10", 通过strtotime转成时间戳(unix timestamp)。
// 后缀"/n"表示数值类型(numeric),可以是小数,如"qty=3.14"。
// 第三个参数指定从$_POST中取参数。如果不指定这个参数则默认是$_REQUEST,这时客户端既可以用URL参数,也可以用POST参数
$qty = param("qty/n", 1.0, $_POST);
函数mparam表示该参数必须传递,否则报错返回,由于mparam要求参数必须给值,因而不可指定参数缺省值:
$startTm = mparam("amount/n");
$startTm = mparam("amount/n", $_POST);
param/mparam除了检查简单类型,还支持一些复杂类型,比如列表:
$idList = mparam("idList/i+"); // 请求参数为"idList=3,4,5", 返回数组 [3, 4, 5]
更多用法,比如两个参数至少填写一个,传一个压缩子表,可查阅参考文档。