<?php
function A( ){
STATIC $a=10;
$a+=10;
echo $a;
}
A( ); // 20
A( ); //20
?>
=====================================================================<?php
function A( ){
STATIC $a
$a=10;
$a+=10;
echo $a;
}
A( ); //20
A( ); //30
?>
function A( ){
STATIC $a=10;
$a+=10;
echo $a;
}
A( ); // 20
A( ); //20
?>
=====================================================================<?php
function A( ){
STATIC $a
$a=10;
$a+=10;
echo $a;
}
A( ); //20
A( ); //30
?>
STATIC $a;
$a=10; // 每次调用开始都只能是10了
function A( ){
STATIC $a=10;
$a+=10;
echo $a;
}
A( ); // 20
A( ); //30
?>
=====================================================================<?php
function A( ){
STATIC $a;
$a=10;
$a+=10;
echo $a;
}
A( ); //20
A( ); //20
?>
STATIC $a;
----------------(1)
$a=10;
$a+=10;
echo $a;
}
================
第二次调用的时候,直到(1)处,局部静态变量$a的确是20,但是你随后又给$a赋值10,所以函数最后结果会一直输出20
function A( ){
STATIC $a=10;
这样的写法 不会覆盖。。
function A( ){
STATIC $a; //其实static在此没用
$a=10; //每次调用都会覆盖。
echo '<br>';
echo $a; //每次调用都是10
echo '<br>';
$a+=10;
echo $a;
}
A();
A();
输出10
20
10
20