is_numeric()用于判断是否是数字,通常配合数值判断
is_numeric(@$a["param1"])?exit:NULL;
if(@$a["param1"]){
($a["param1"]>2017)?$v1=1:NULL;
}
//param1不能是数字,但又要比2017大,利用数组
$pos = array_search("nudt",$a["param2"]);
$pos ==false?die("nope"):NULL;
foreach($a["param2"] as $key=>$val){
$val==="nudt"?die("nope"):NULL;
}
//param2中需要匹配到nudt然而是弱类型,0==任何字符串,用0可以过掉弱类型检查字符串
eregi存在\x00截断的问题
strcmp的检查可以利用数组过掉,因为PHP内置函数的松散性,数组与字符串比较会返回null,可看做false
sha1([])和md5([])处理数组不会报错,直接返回false

本文探讨了在PHP中利用弱类型进行的一些特殊操作,包括使用is_numeric()判断数字、数组与字符串比较返回null的特点、eregix存在的x00截断问题及sha1和md5处理数组不报错等技巧。

被折叠的 条评论
为什么被折叠?



