function number_check($int){
if($int>0 && !is_float($int)){return TRUE;}
else{return FALSE;}
}
$var="025";
if(number_check($var)){echo "pass";}else{echo "fail";}
我已经创建了一个检查帖子ID号码的功能。
post_id
应始终为> 0
而不是小数。
但是当用户尝试输入000243
时出现问题,如果用户将zero
放在前面,则返回true
。
有什么方法可以解决这个问题吗?
答案 0 :(得分:2)
试试这个:
<?php
echo intval('000243');
?>
答案 1 :(得分:1)
尝试在不使用引号的情况下为$ var赋值。 即$ var = 000243;
答案 2 :(得分:1)
另一种方法是:
function prepareID($id)
{
$id = preg_replace('/^([0]*)/', '', $id);
return (int)$id;
}
$var = prepareID("025");
prepareID函数将删除任何前导零,它将返回一个整数
答案 3 :(得分:1)
我认为检查$int{0} != 0
将解决您想要实现的目标:
function number_check($int){
if ( $int > 0 && !is_float($int) && $int{0} != 0 ) {
return TRUE;
}
else {
return FALSE;
}
}
$var="023";
if ( number_check($var) ) {
echo "pass";
} else {
echo "fail";
}
选中此DEMO