function is_zipcode_valid($zipcode){ ... }
如果我用is_zipcode_valid(08004);
调用该函数
我的参数08004以8004进入,基本上它删除了所有优先于0的。
我如何解决这个问题?
感谢
答案 0 :(得分:3)
将其作为字符串传递并修改您的函数以期望字符串:
is_zipcode_valid('08004');
使用整数时,无法保留前导零。如果整数值的前导零,则在基数8中进行解释。以下是一个示例:
echo 010; // Output is 8.
答案 1 :(得分:0)
如果存在前导零,则PHP将整数视为base8数。将您的号码作为string
答案 2 :(得分:0)
正如大家所说,将其作为字符串传递。
如果是php5,你可以通过强制转换
来确保它是字符串$zipcode = (string) $zipcode;
或
$zipcode = "$zipcode";
function is_zipcode_valid( $zipcode){
is_string($zipcode) //returns true
}
参见Php.Net
注意:不是将变量强制转换为字符串,也可以将变量括在双引号中。
//从数字函数
创建zipcode function form_zipcode($zipcode,$desiredLength){
if(str_len($zipcode) != $desiredLength)
{
return str_pad($zipcode,$desiredLength,"0",STR_PAD_LEFT);
}
else
{
return $zipcode;
}
}
使用form_zipcode(55,5)将返回“00055”;
答案 3 :(得分:0)
昨晚很抱歉打字错误(GMT在这里)
<?php
echo form_zipcode("55",5);
function form_zipcode($zipcode,$desiredLength){
if(strlen($zipcode) != $desiredLength)
{
return str_pad($zipcode,$desiredLength,"0",STR_PAD_LEFT);
}
else
{
return $zipcode;
}
}
?>
按预期工作返回00055 那不是你需要的吗?