谁知道PHP中静态变量是什么意思?急!
答案:1 悬赏:40 手机版
解决时间 2021-11-17 00:19
- 提问者网友:几叶到寒
- 2021-11-16 17:54
谁知道PHP中静态变量是什么意思?急!
最佳答案
- 五星知识达人网友:鱼忧
- 2021-11-16 18:29
静态变量,简单的说,就是一种在特定范围内一直存在的变量,你可以把全局变量当作一种静态变量,它的值在代码运行期间一直存在。
通常来说,静态局部变量大多用于特殊场合里,比如,当在某函数中,希望每次运行函数时,都使用上次函数的结果,此时除使用全局变量外,就可以使用静态变量。
以下是关于静态局部变量特点的一些资料说明:
1. 不会随着函数的调用和退出而发生变化,不过,尽管该变量还继续存在,但不能使用它。倘若再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值。
2. 静态局部变量只会初始化一次。
3. 静态属性只能被初始化为一个字符值或一个常量,不能使用表达式。即使局部静态变量定义时没有赋初值,系统会自动赋初值0(对数值型变量)或空字符(对字符变量);静态变量的初始值为0。
4. 当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用,因此仍以采用局部静态变量为宜。
PHP里,定义静态变量使用 static 进行修饰。比如
static $avar= 0;追问简单说说追答请对比以下代码运行结果:
function static_zdy()
{
static $message = 0; //初始化静态变量
$message += 1;
echo $message;
}
function zdy()
{
$message = 0; //非静态变量
$message += 1;
echo $message;
}
for ($i = 0; $i < 10; $i++)
zdy(); //输出普通定义变量结果
echo "
";
for ($i = 0; $i < 10; $i++)
static_zdy(); //输出静态变量结果
?>
运行结果:
1111111111
12345678910
追问静态变量会累加吗追答1、不管是静态还是非静态,变量就是变量。
2、累加不累加,是根据你自己的需求来的,只是对变量的一种使用。
通常来说,静态局部变量大多用于特殊场合里,比如,当在某函数中,希望每次运行函数时,都使用上次函数的结果,此时除使用全局变量外,就可以使用静态变量。
以下是关于静态局部变量特点的一些资料说明:
1. 不会随着函数的调用和退出而发生变化,不过,尽管该变量还继续存在,但不能使用它。倘若再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值。
2. 静态局部变量只会初始化一次。
3. 静态属性只能被初始化为一个字符值或一个常量,不能使用表达式。即使局部静态变量定义时没有赋初值,系统会自动赋初值0(对数值型变量)或空字符(对字符变量);静态变量的初始值为0。
4. 当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用,因此仍以采用局部静态变量为宜。
PHP里,定义静态变量使用 static 进行修饰。比如
static $avar= 0;追问简单说说追答请对比以下代码运行结果:
function static_zdy()
{
static $message = 0; //初始化静态变量
$message += 1;
echo $message;
}
function zdy()
{
$message = 0; //非静态变量
$message += 1;
echo $message;
}
for ($i = 0; $i < 10; $i++)
zdy(); //输出普通定义变量结果
echo "
";
for ($i = 0; $i < 10; $i++)
static_zdy(); //输出静态变量结果
?>
运行结果:
1111111111
12345678910
追问静态变量会累加吗追答1、不管是静态还是非静态,变量就是变量。
2、累加不累加,是根据你自己的需求来的,只是对变量的一种使用。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯