php函数整数参数问题

时间:2010-04-22 22:14:09

标签: php

function is_zipcode_valid($zipcode){ ... }

如果我用is_zipcode_valid(08004);调用该函数 我的参数08004以8004进入,基本上它删除了所有优先于0的。

我如何解决这个问题?

感谢

4 个答案:

答案 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 那不是你需要的吗?