此類用於接受作者指定的引數說明物件,對引數的名稱和型別進行驗證,還可以指定乙個額外的函式名稱對引數進行處理應用舉例:<?php
function sanitize_vars(&$vars, $signatures, $redir_url = null) else
exit();
}$tmp[$name] = $vars[$name];
if(isset($sig['type']))
if(isset($sig['function']))
}$vars = $tmp;
}
$sigs = array(settype ( mixed &$var , string $type ) : bool'email' => array('required' => true, 'type' => 'string', 'function' => 'addslashes'),
'passwd' => array('required' => true, 'type' => 'string', 'function' => 'addslashes')
);sanitize_vars($_post, $sigs);
其中的, 'function' => 'addslashes'是可選的.也可以指定別的自定義函式.這裡主要是對使用者輸入進行處理,防止注入.
每個選項都有個required鍵值對,說明引數是否是必須的,type的型別和settype一致,
將變數 var 的型別設定成 type。
引數var
要轉換的變數。
type
type 的可能值為:
◦ "boolean" (或為"bool",從 php 4.2.0 起)
◦ "integer" (或為"int",從 php 4.2.0 起)
◦ "float" (只在 php 4.2.0 之後可以使用,對於舊版本中使用的"double"現已停用)
◦ "string"
◦ "array"
◦ "object"
◦ "null" (從 php 4.2.0 起)
有了這個神器,就多了一道安全屏障,如果型別設定為int,那就只能接收整型的引數,否則會被該函式自動攔截處理了.
乙個可變引數型別檢查的示例
最近在修正 警告,發現封裝的列印語句不會進行引數的型別檢查,而用printf卻是可以的。於是上網找了下資料,學習了一下。對於函式引數型別的檢查,在gcc環境中可以使用 attribute format printf,n,m 的形式。其中n表示第幾個引數是格式化字串,m指明從第幾個引數開始做檢查。對於...
乙個介面多個實現,指定實現類
目的 乙個介面多個實現時,根據不同的條件呼叫不用的實現 1 有如下介面 public inte ce pay2 有如下兩個實現 實現一 service weixinpay public class weixinpay implements pay 實現二 service alipay public ...
C 將乙個物件轉換為指定型別
適用 普通的物件,並且有預設的無引數建構函式 region 將乙個物件轉換為指定型別 將乙個物件轉換為指定型別 待轉換的物件 目標型別 轉換後的物件 public static object converttoobject object obj,type type else if underlyin...