常用操作 / 獲取引數

天笑發表於2017-03-01

函式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]

更多用法,比如兩個引數至少填寫一個,傳一個壓縮子表,可查閱參考文件。

相關文章