function is_zipcode_valid($zipcode){ ... }
如果我叫與功能is_zipcode_valid(08004);
我的參數08004獲取爲8004,基本上它刪除了所有precending 0。PHP函數整數參數問題
我該如何解決這個問題?
感謝
function is_zipcode_valid($zipcode){ ... }
如果我叫與功能is_zipcode_valid(08004);
我的參數08004獲取爲8004,基本上它刪除了所有precending 0。PHP函數整數參數問題
我該如何解決這個問題?
感謝
把它作爲一個字符串,並修改你的函數期待一個字符串,而不是:
is_zipcode_valid('08004');
這是不可能的使用整數時保留前導零。如果一個整數值有一個前導零,它在基座8被解釋下面是一個例子:
echo 010; // Output is 8.
PHP把整數作爲base8號碼如果前導零的存在。將您的號碼作爲string
正如大家所說的那樣,將其作爲字符串傳入。
如果PHP5,你可以確保它是字符串鑄造
$zipcode = (string) $zipcode;
或
$zipcode = "$zipcode";
function is_zipcode_valid($zipcode){
is_string($zipcode) //returns true
}
見Php.Net
注意要在:與其鑄造變量爲一個字符串,也可以用雙引號括起變量。
//創建數函數
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」;
對不起錯字昨晚(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 ,你不要求什麼?
或者''sprintf('%05d',$ zipcode)'也可以工作 – 2010-04-23 16:07:02
整潔更緊湊 – 2010-04-23 20:58:18
郵政編碼和郵政編碼不是數字。它們是恰好包含數字的標識符。始終把它們當作字符串處理 – staticsan 2010-04-23 01:17:11