谁知道PHP中静态变量是什么意思?急!
2015-05-17 · 知道合伙人软件行家
关注
展开全部
静态变量,简单的说,就是一种在特定范围内一直存在的变量,你可以把全局变量当作一种静态变量,它的值在代码运行期间一直存在。
通常来说,静态局部变量大多用于特殊场合里,比如,当在某函数中,希望每次运行函数时,都使用上次函数的结果,此时除使用全局变量外,就可以使用静态变量。
以下是关于静态局部变量特点的一些资料说明:
1. 不会随着函数的调用和退出而发生变化,不过,尽管该变量还继续存在,但不能使用它。倘若再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值。
2. 静态局部变量只会初始化一次。
3. 静态属性只能被初始化为一个字符值或一个常量,不能使用表达式。即使局部静态变量定义时没有赋初值,系统会自动赋初值0(对数值型变量)或空字符(对字符变量);静态变量的初始值为0。
4. 当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用,因此仍以采用局部静态变量为宜。
PHP里,定义静态变量使用 static 进行修饰。比如
static $avar= 0;
更多追问追答
追问
简单说说
追答
请对比以下代码运行结果:
<?php
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 "<br>";
for ($i = 0; $i < 10; $i++)
static_zdy(); //输出静态变量结果
?>
运行结果:
1111111111
12345678910
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询