永发信息网

谁知道PHP中静态变量是什么意思?急!

答案:1  悬赏:40  手机版
解决时间 2021-11-17 00:19
谁知道PHP中静态变量是什么意思?急!
最佳答案
静态变量,简单的说,就是一种在特定范围内一直存在的变量,你可以把全局变量当作一种静态变量,它的值在代码运行期间一直存在。


通常来说,静态局部变量大多用于特殊场合里,比如,当在某函数中,希望每次运行函数时,都使用上次函数的结果,此时除使用全局变量外,就可以使用静态变量。


以下是关于静态局部变量特点的一些资料说明:


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、累加不累加,是根据你自己的需求来的,只是对变量的一种使用。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
1970年农历5月13生的人寿命多长啊?
谁推翻了中国的奴隶制
当阳河溶海拔多少米
有40亩租地能建多少平方看管房
72v30A的电动车能开多少公里
LOL狼人的荒野豺狼跟黑暗骑士那个好啊?
初中女孩 被打三小时 什么结果
iso 文件和原装正版光碟有什么区别
我的世界自动原石机怎么建设 自动原石机攻略
鹅羊共有七十三只,二百只脚,问鹅羊各有多少只
请问一下做微商怎样发朋友圈才能吸引别人的购
各位,半球中水变成平手高水什么意思?
Baby和迪丽热巴撞衫旗袍,这次谁更尴尬
初3数学等对等定理内容
晚上右边眼珠痛.该怎么办
推荐资讯
用化学用语表示:(1)磷元素;______
重庆北碚的轻工业学校就业前景与工资待遇怎么
康宁锅真的很好用吗?这种特殊的玻璃有什么优
一峰一高人,两人相与语。此地有西湖,勾留不
腾瑞通讯地址好找么,我有些事要过去,
50000×(1.06∧X-1)/0.06=120000 可以
DHL eCommerce 和DHL有何不同
煤的脱屑脱硫是怎么回事
张张张字的拼音
微型桃子打一谜语
我就要去远方寻找未来,是哪首歌里面的
体温有时候会37.3度,身体没有不适,怎么办
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?