广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php中静态变量和普通变量有什么区别
  • 738
分享到

php中静态变量和普通变量有什么区别

php静态变量普通变量 2014-09-28 02:09:37 738人浏览 无得
摘要

本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑在变量的前面加上static 就构成了静态变量(static 变量)。static变量和普通变量的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组

教程操作环境:windows7系统、PHP7.1版、DELL G3电脑

在变量的前面加上static 就构成了静态变量(static 变量)。

static变量和普通变量的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。

static变量和普通变量的区别:

static全局变量与普通全局变量区别:static全局变量只初始化一次,防止在其他文件单元中被引用;
static局部变量和普通局部变量区别:static局部变量只被初始化一次,下一次依据上一次结果值;
static函数与普通函数区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝。

在全局变量之前加上关键字static,全局变量就被定义成为一个全局静态变量。

1)内存中的位置:静态存储区(静态存储区在整个程序运行期间都存在)

2)初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化)

3)作用域:全局静态变量在声明他的文件之外是不可见的。准确地讲从定义之处开始到文件结尾。

static 变量的好处:

不会被其他文件所访问,修改其他文件中可以使用相同名字的变量,不会发生冲突。

内存中的位置:静态存储区

初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化)
作用域:作用域仍为局部作用域,当定义它的函数或者语句块结束的时候,作用域随之结束。

注:当static用来修饰局部变量的时候,它就改变了局部变量的存储位置,从原来的栈中存放改为静态存储区。但是局部静态变量在离开作用域之后,并没有被销毁,而是仍然驻留在内存当中,直到程序结束,只不过我们不能再对他进行访问。
当static用来修饰全局变量的时候,它就改变了全局变量的作用域(在声明他的文件之外是不可见的),但是没有改变它的存放位置,还是在静态存储区中。

普通函数实例:

<?php
function Test() {
  $w3sky = 0;
  echo $w3sky;
  $w3sky++;
  
}
?>

要将变量 $w3sky 定义为静态(static)的,代码如下:

<?php
function Test() {
  static $w3sky = 0;
  echo $w3sky;
  $w3sky++;
} //本函数每调用Test()都会输出 $w3sky 的值并加一。
 
?>

静态变量也提供了一种处理递归函数的方法。递归函数是一种自己调用自己的方法。写递归函数时要小心,因为可能会无穷递归下去,没有出口.务必确保 有方法来中止递归。以下这个简单的函数递归计数到 10,使用静态变量 $count 来判断何时停止, 静态变量与递归函数的例子:

<?php
function Test() {
  static $count = 0;
  $count++;
  echo $count;
  if ($count < 10) {
    Test();
  }
  $count--;
}
?>

注: 静态变量不能用表达式的方式声明例如:static $int = 1+2; 这种方式就是错的 而static $int = 1; 这种声明方式则是对的。

--结束END--

本文标题: php中静态变量和普通变量有什么区别

本文链接: https://www.lsjlt.com/news/1211.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php中静态变量和普通变量有什么区别
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑在变量的前面加上static 就构成了静态变量(static 变量)。static变量和普通变量的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组...
    99+
    2014-09-28
    php 静态变量 普通变量
  • php中静态变量和普通变量有哪些区别
    这篇“php中静态变量和普通变量有哪些区别”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php中静态变量和普通变量有哪些区别...
    99+
    2023-06-29
  • php7静态变量与普通变量的区别是什么
    这篇文章主要讲解了“php7静态变量与普通变量的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php7静态变量与普通变量的区别是什么”吧!php7...
    99+
    2022-10-19
  • C#静态变量和非静态变量的区别
    本篇内容介绍了“C#静态变量和非静态变量的区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C#基础概念之一,静态变量和非静态变量的区别?静...
    99+
    2023-06-18
  • php常量和静态变量的区别是什么
    本教程操作环境:windows10系统、PHP7.1版、DELL G3电脑php常量和静态变量的区别是什么在效率上:常量编译过程比静态变量快的多。代码:<php error_reporting(E_ALL); class A { ...
    99+
    2014-08-20
    PHP
  • c语言静态变量和全局变量有什么区别
    C语言中的静态变量和全局变量在作用域和生命周期上有所区别。1. 作用域:- 全局变量:全局变量定义在函数外部,可以被程序中的所有函数...
    99+
    2023-09-14
    c语言
  • C#中静态变量与非静态变量的区别有哪些
    这篇文章主要为大家展示了“C#中静态变量与非静态变量的区别有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#中静态变量与非静态变量的区别有哪些”这篇文章吧。静态变量:静态变量使用 stat...
    99+
    2023-06-17
  • java静态成员变量静态方法 和普通成员变量 普通方法存在JVM哪个区域
    Java静态成员变量和静态方法以及普通成员变量和普通方法在JVM中存在不同的区域。 对于静态成员变量和静态方法,它们的存储区域是方法区(Method Area)。方法区是一块用于存储类的结构信息、静...
    99+
    2023-10-06
    jvm java 开发语言
  • php常量和静态变量的区别有哪些
    这篇文章主要为大家展示了“php常量和静态变量的区别有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“php常量和静态变量的区别有哪些”这篇文章吧。php中常量和静态变量的区别:1、常量都是不...
    99+
    2023-06-29
  • java的静态变量和实例变量的区别是什么?
    静态变量属于类的级别,而实例变量属于对象的级别。静态变量和实例变量的主要区别有两点:存放位置不同类变量随着类的加载存在于方法区中,实例变量随着对象的对象的建立存在于堆内存中。生命周期不同类变量的生命周期最长,随着类的加载而加载,随着类的消失...
    99+
    2018-12-02
    java教程 java 静态变量 实例变量
  • Java中静态变量与实例变量的区别是什么
    今天就跟大家聊聊有关Java中静态变量与实例变量的区别是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。java类的成员变量有俩种:一种是被static关键字修饰的变量,叫类变量或...
    99+
    2023-06-17
  • php中什么是静态变量
    这篇文章主要介绍了php中什么是静态变量,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是静态变量:在函数内部使用static声明得变量就是静态变量;静态变量的特征:静态变...
    99+
    2023-06-15
  • 静态变量有什么用
    静态变量是一种在程序运行期间保持固定存储位置的变量,有以下几个主要的用途:1、实现对数据的持久性存储和访问;2、在程序的不同部分之间共享数据;3、用于保存函数的状态信息;4、用于控制函数或类成员的可见性和范围。本教程操作系统:Windows...
    99+
    2023-08-17
  • python中类变量和实例变量有什么区别
    这篇文章给大家介绍python中类变量和实例变量有什么区别,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言通俗易懂、...
    99+
    2023-06-14
  • python类变量和成员变量有什么区别
    在Python中,类变量和成员变量是两种不同类型的变量。类变量是在类的定义中声明的变量,它是类的所有实例共享的属性。当类变量的值被修...
    99+
    2023-10-10
    python
  • JavaScript中常量和变量有什么区别
    这篇文章给大家介绍JavaScript中常量和变量有什么区别,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。区别:变量可重新声明、可重新赋值;而常量一旦声明则无法改变的量,不可重新声明,不可重新赋值。变量可只声明,无赋值...
    99+
    2023-06-14
  • Java中局部变量和成员变量有什么区别
    今天小编给大家分享的是Java中局部变量和成员变量有什么区别,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。目录一. 关于变量 概念 命名规范 作用范围 变量分类二. 局部变量 概念 ...
    99+
    2023-07-06
  • python中全局变量和局部变量有什么区别
    python中全局变量和局部变量有什么区别?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;...
    99+
    2023-06-14
  • php中变量和常量有哪些区别
    php中变量与常量的区别有以下几点名称不同php中变量名需使用($)符号进行修饰,常量名则不需要,变量名建议使用小写,常量名建议使用大写。定义方式不同php中变量一般在赋值时进行定义,无法使用关键字或函数进行定义,而常量必须使用define...
    99+
    2022-10-17
  • java成员变量和局部变量有什么区别
    Java中的成员变量和局部变量有以下区别:1. 作用域不同:成员变量在整个类中都可见,而局部变量只在声明它的代码块内可见。2. 生命...
    99+
    2023-08-23
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作