这个例子来自php.net:
<?php
function Test()
{
static $a = 0;
echo $a;
$a++;
}
?>
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
function getNextQuestionID()
{
static $idx = 0;
return $idx++;
}
Run Code Online (Sandbox Code Playgroud)
我在JavaScript中使用它:
'quizID=' + "<?php echo getNextQuestionID(); ?>"
Run Code Online (Sandbox Code Playgroud)
每次返回0.为什么?
小智 5
我相信你误解了静态变量的作用.试试这个代码你可能会更好地理解:
echo getNextQuestionID() . ", " getNextQuestionID() . ", " getNextQuestionID();
Run Code Online (Sandbox Code Playgroud)
你会明白我的意思.
只要脚本有效,静态var就会存在.
它在第一次运行而不是1时返回0的原因是因为您使用的是后缀运算符$ var ++而不是前缀版本 - ++ $ var.不同之处在于,仅在函数返回后使用后缀运算符时才应用增量 - 但如果使用前缀运算符,则在函数返回之前应用它.
| 归档时间: |
|
| 查看次数: |
1723 次 |
| 最近记录: |