我有PHP代碼preg_replace顯示限制?
preg_replace("/([0-9]{2})([0-9]{4})([0-9]{4})([0-9]{4})/",
"$1 $2 $3 $4",
121234123412341234)
這樣做的結果是1.21234123412E+17
。我需要成爲12 1234 1234....
也許我需要使用其他功能?
我有PHP代碼preg_replace顯示限制?
preg_replace("/([0-9]{2})([0-9]{4})([0-9]{4})([0-9]{4})/",
"$1 $2 $3 $4",
121234123412341234)
這樣做的結果是1.21234123412E+17
。我需要成爲12 1234 1234....
也許我需要使用其他功能?
各地使用輸入單引號
echo preg_replace("/([0-9]{2})([0-9]{4})([0-9]{4})([0-9]{4})/", "$1 $2 $3 $4", '121234123412341234');
輸出
12 1234 1234 12341234
使用字符串。 PHP cannot handle such large integers除非他們得到轉換爲float:
的整數的大小是與平臺相關的,雖然約兩十億最大值 是通常的值(32位有符號)。通常,64位平臺的最大值約爲9E18。 PHP確實 不支持無符號整數。整數大小可以使用 恆定的PHP_INT_SIZE和最大值使用常量 PHP_INT_MAX自PHP 4.4.0和PHP 5.0.5以來。
在我的電腦,PHP_INT_MAX
爲2147483647
綜上所述,請比較:
var_dump(121234123412341234, '121234123412341234');
float(1.2123412341234E+17)
string(18) "121234123412341234"
是我第一次打算過,'strval'也是變量合適的解決方案 – Joshua
@Joshua - 「strval()」究竟是一個解決方案?如果PHP不能存儲一個非常大的整數,那麼就無法通過將其轉換爲字符串來返回 - 到那時值就消失了。 –