PHP中奇怪的数字 - 马永占 译

本文通过一个具体的例子展示了在PHP中如何处理以0开头的数字,解释了这些数字被视为八进制数的原因,并提供了相应的测试代码。

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.youkuaiyun.com/mayongzhan - 马永占,myz,mayongzhan

原文地址:http://phplens.com/phpeverywhere/?q=node/view/249
由一条别人adodb的bug引发的思考

echo 09," => (09) <br>";
echo 9," => (9) <br>";


你可以试一下.输出结果是:

0 => (09)

9 => (9)

而不是

09 => (09)

9 => (9)





这个译者做了下测试,经过分析得出.0开头的数字会被当成8进制,0x开头的会被当成16进制,如下:

echo 0x11," => (011) <br>";

echo 010," => (010) <br>";

这个会输出:

17 => (011)

8 => (010)

当然是10x16+1=17

1x8+0=8

OK.









Someone reported a bug in ADOdb, the open source db library i maintain. I went crazy for half an hour until i realised the problem. Here's a little gotcha you can try:
echo 09," => (09) <br>";
echo 9," => (9) <br>";
If you expect the above code to produce the same values, you are sadly mistaken. Try it. I will post a followup later :)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值