解释这个函数的作用…主要是正则表达式


explanation on what this function does... mainly just the regular expressions

谁能给我一个简短的解释:

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