【发布时间】:2014-06-10 19:25:54
【问题描述】:
编辑:很抱歉,当我试图找出问题时,原始代码是一个迭代,我已经编辑了代码 This 问题开始类似,但这是我遇到的真正问题:
在这段代码中:
<?php
$a = 2:
function incr(){
$a++;
echo $a;
}
echo $a;
incr();
?>
输出是 2,然后是 1,这向我表明变量 $a 在函数内部被初始化为 0。服务器是否知道我使用增量语法将变量初始化为 0?
【问题讨论】:
-
您的问题是
$a不在您的函数范围内。在函数内部,$a没有定义 -
有趣的是,你从 echo incr() 中得到了 1;称呼。在 incr 中,$a 是未定义的。所以, $a++ 是未定义的,你不应该得到任何输出。这是对问题的简化,还是您实际上看到了该输出?粘贴到writecodeonline.com/php,只输出2个。
-
@Barbara undefined variables 只是一个通知,并且(基本上)执行
null + 1会将空值强制转换为整数类型,显然是在尝试添加之前的值0。请参阅type juggling 上的手册。您可以配置 php,以便将通知视为错误,但默认情况下不会。