编辑:很抱歉,原始代码是迭代,而我试图解决问题,我编辑了代码 这个问题开始类似,但这里是我遇到的真正问题:
在这段代码中:
<?php
$a = 2:
function incr(){
$a++;
echo $a;
}
echo $a;
incr();
?>
Run Code Online (Sandbox Code Playgroud)
输出是2然后是1,这告诉我变量$a在函数内被初始化为0.服务器是否只知道我使用增量语法将变量初始化为0?
$a是未定义的,然后当你递增它时,它会去1.
function incr(){
$a++; // $a is undefined
return $a;
}
Run Code Online (Sandbox Code Playgroud)
正如手册中指出的那样:
注意:
递增/递减运算符仅影响数字和字符串.数组,对象和资源不受影响.递减NULL值也没有效果,但递增它们会产生1.
您可以使用global,它将按预期返回.
function incr(){
global $a;
$a++;
return $a;
}
Run Code Online (Sandbox Code Playgroud)