所以我们在PHP中调用一些函数:
do_something('foodabaa');
function do_something($subject)
{
static $pattern = '~foo~';
return preg_replace($pattern, 'bar', $subject);
}
替换值bar
是静态的,还是动态的,因此每次调用函数都会重新初始化它?
除了PHP之外,请务必添加有关其他编程语言的信息。
答案 0 :(得分:1)
来自PHP documentation(示例#5):
function test()
{
static $a = 0;
echo $a."\n\r";
$a++;
}
现在,只有在第一次调用函数时才会初始化$ a 调用test()函数它将打印$ a和的值 增加它。
所以如果你打两次电话:
test();
test();
返回将是:
0
1
回到你的例子。同样的情况,$pattern
只会被初始化一次。
内部C / C ++
void foo()
{
static int a = 0;
printf("%d", a);
x++;
}
int main()
{
foo();
foo();
return 0;
}
输出将是:
0
1
这是许多使用静态变量的语言中的常见行为。