如何在PHP整数中保留前导零

9
我正在使用API,并需要将ClientID作为整数传递。问题是,一些ID以前导0开头。当我将整数传递给API时...PHP会切断前导零,这会使ClientID不准确。我已经尝试将ID作为字符串传递以保留零,但API需要一个整数。
例如:ClientID = 00061423,当我将其传递给API时,它被缩短为61423,导致请求失败,因为找不到该客户端。
是否有一种方法让PHP在整数上保留前导零?

3
请点击这里查看如何在PHP中给数字添加前导零。 - Jnatalzia
2
你在谈论哪个API?它使用的接口是什么?这个字符串拒绝的故事听起来对我很奇怪。 - Your Common Sense
PHP不进行类型检查;API使用什么技术? - Kneel-Before-ZOD
@YourCommonSense,你是对的。文档说它必须是(int)类型,但当我传递一个字符串时,它也可以正常工作。我想我应该先尝试显而易见的方法。顺便说一下,这是mindbodyonline API,它使用SOAP。 - Dustin Fraker
2
如果API真正需要(a)期望一个整数,并且(b)期望它具有前导零,那么该API存在缺陷。 - Boann
3个回答

11

您不能在 整数 中保留前导零。您可以将它们保留在一个字符串中,或者在输出时使用 sprintf(), str_pad() 等函数进行添加


3
使用 str_pad
str_pad($var, $numZeroesToAppend, '0', STR_PAD_LEFT)

2
将其作为字符串传递,零将被保留。

1
他在上面说过他尝试过了,但API需要一个整数。 - Jnatalzia
PHP 不进行类型检查。那应该可以工作。 - Kneel-Before-ZOD
1
谢谢大家。我只是传递了一个字符串,它就起作用了。文档不准确。 - Dustin Fraker
@Jnatalzia,我的回答有效。请点赞我的回答。 - Kneel-Before-ZOD
1
如果一个API将0006142361423视为不同的值,那么它显然不是整数!+1 - Dave Chen
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接