Dav*_*vid 0 php variables debugging
我想我刚刚遇到了我在短暂的开发人员生活中遇到过的最奇怪的'bug'.好像我只是不能将值8赋值给任何变量.举个例子:
<?php
$seven = 07;
$eight = 08; //what's wrong here?
$sevenB = 7;
$eightB = 8;
echo $seven;
echo $eight;
echo $sevenB;
echo $eightB;
?>
Run Code Online (Sandbox Code Playgroud)
输出是:
7078
Run Code Online (Sandbox Code Playgroud)
NetBeans中的调试器告诉我0分配给$ 8,而其他变量都没问题.如果我在值之前删除了零,则会分配8个,但是只要在构造函数中使用此变量,它就会再次替换为零.WTF?
这是我的配置:WAMP 2.0g,PHP 5.2.9,Apache 2.2.11,NetBeans 6.7.1.禁用Xdebug(2.05)不会改变任何事情.
谁对这种不一致的行为负责?如何解决这个问题?
谢谢你的帮助!
在PHP中,以零开头的数字被认为是八进制.因为八进制(基数8)只有数字0-7,08无效并被视为零.
有关详细信息,请参阅本手册页,并注意语法部分中的警告:"如果以八进制整数(即8或9)给出无效数字,则忽略该数字的其余部分."
<?php
var_dump(01090); // 010 octal = 8 decimal
?>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
285 次 |
| 最近记录: |