登录  /  注册
在PHP中静态变量和全局变量有哪些不同?
亚连
发布:2023-03-26 10:46:01
原创
2748人浏览过

● 全局变量作用域为定义处至源文件结尾,存储时期为定义后为其分配内存,程序退出后释放内存;

● 局部变量作用域为局部,存储时期为定义后分配内存,退出作用域后释放内存;

● 全局变量默认为静态变量,局部变量默认为自动变量,也可以声明为静态变量,静态变量和自动变量的区别是存储时期的区别,静态变量的存储时期是内存空间在程序运行期间都存在,程序退出才被释放;

● 自动变量内存空间在作用域内才存在,退出作用域后就被释放。

静态局部变量的特点:

1.不会随着函数的调用和退出而发生变化,不过,尽管该变量还继续存在,但不能使用它。倘若再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值

2.静态局部变量只会初始化一次

3.静态属性只能被初始化为一个字符值或一个常量,不能使用表达式。即使局部静态变量定义时没有赋初值,系统会自动赋初值0(对数值型变量)或空字符(对字符变量);静态变量的初始值为0。

4.当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用,因此仍以采用局部静态变量为宜。

代码如下:

function test()
{
  
 static $var = 5;  //static $var = 1+1;就会报错
    
$var++;  
 echo $var . ' ';
}
test(); //2
test(); //3
test(); //4echo $var; //报错:Notice: Undefined variable: var
登录后复制

关于静态全局变量:

代码如下:

//全局变量本身就是静态存储方式,所有的全局变量都是静态变量
function static_global(){
    global $glo;    
       $glo++;    
      echo $glo.'<br>';
}
static_global(); //1
static_global(); //2
static_global(); //3
echo $glo . '<br>'; //3
登录后复制

所以静态全局变量使用并不多。

上面是我整理给大家的在PHP中静态变量和全局变量,希望今后会对大家有帮助。

相关文章:

PHP的变量作用域和全局变量(图文教程)

一招搞定,php中闭包函数里面use的使用方法和区别,以及&引用的含义为你详细解答

详细讲解php 类、方法关键字教程

以上就是在PHP中静态变量和全局变量有哪些不同?的详细内容,更多请关注php中文网其它相关文章!

相关标签:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
  • 蓝色极简风格律师事务所网站模板
  • 汉堡披萨快餐美食网站模板
  • 创意数字服务机构HTML5模板
网站特效
网站源码
网站素材
前端模板
关于我们免责申明意见反馈讲师合作广告合作技术文章
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2023//m.sbmmt.com/ All Rights Reserved | 苏州跃动光标网络科技有限公司 | 苏ICP备2020058653号-1

 | 本站CDN由 数掘科技 提供

登录PHP中文网,和优秀的人一起学习!
全站2000+教程免费学