转换删除前导零

时间:2009-05-15 22:30:06

标签: php casting

有人可以告诉我为什么当我投出一串说00332时我才会回到332?它会删除前导零并以相同的格式保存数据。

由于


this->_gate   = (string) $this->_linkID->QuoteSmart($gate);

5 个答案:

答案 0 :(得分:2)

不要将字符串转换为字符串,也不要将任何类型转换为相同类型的字符串。类型转换用于将某种类型的东西更改为另一种类型。

答案 1 :(得分:1)

我会说因为前导零在转换为整数时没有任何重要性。

如果你需要那些前导零,你可以将它保留为字符串,并且只需要对任何需要执行的数学运算(int)(尽管你也可以使用字符串,PHP会弄清楚)< / p>

修改

在看到这个例子之后,我想在你转换为字符串之前回显这个值(所以我可以确认一些可疑的东西与你的QuoteSmart方法(或你作为param发送的值,$ gate)

答案 2 :(得分:1)

$ php -r 'var_dump((string)"00123");'
string(5) "00123"

看起来演员不是你的问题。

答案 3 :(得分:0)

你把它投到了什么?为什么?我们来看看代码。如果你转换为整数,是的,整数没有前导零,所以它们消失了。毫不奇怪。

答案 4 :(得分:0)

好的,这就是它放弃前导零的原因。它不是铸造也不是添加。我做的是引用变量(引用智能应该做什么,但不是出于某种原因)一旦我引用变量,我得到了正确保存的值。如果我没有弄错的话,quotesmart只能用于字符串而不是整数。