谁能给我一个简短的解释:
function id_zero($id)
{
if (preg_match("/^[0-9]+$/", $id) && $id > 0) return $id;
return 0;
}
主要是这一部分:"/^[0-9]+$/"
它正在寻找0到9之间的数字,我真的不确定其他字符在做什么…
参见:http://rick.measham.id.au/paste/explain.pl?regex=%2F%5E%5B0-9%5D%2B%24%2F
函数要确保传递的$id只是大于0的数字。否则返回0。
-
^
表示行起始(在本例中为$id
) -
[0-9]+
表示任意数字 -
$
表示行尾(在本例中还是$id
) -
/
只是用来指定它是正则表达式。
顺便说一下,您可以用以下方式替换此函数:
function id_zero($id) {
$a = intval($id);
return ((string)$a==$id)? $a : 0;
}
从变量$id开始匹配0-9之间的数字字符串(一个或多个),如果大于0则返回数字,如果小于0则返回0。"carat"表示变量的开始,或者从的开始。$符号正在转义
http://www.regular-expressions.info/charclass.html