首页 > php代码 > PHP中奇怪的数字

PHP中奇怪的数字

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/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 :)


本文地址:http://www.phprm.com/code/8988b0024c6a050b521c75723fd010a9.html

转载随意,但请附上文章地址:-)

标签:none

发表留言