php有没全局静态变量(php全局变量和局部变量)

本文目录一览:

php中static 静态变量和普通变量的区别

全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。 从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域, 限制了它的使用范围。 static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件 static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用; static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值; static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝

PHP有静态全局变量么

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

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

静态局部变量的特点:

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

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

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

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

代码如下:

function test()

{

static $var = 5; //static $var = 1+1;就会报错

$var++;

echo $var . ‘ ‘;

}

test(); //2

test(); //3

test(); //4

echo $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

function a($a)

{

    static $aa;

    $aa[] = $a;

    return $aa;

}

a(1);

a(2);

$a = a(3);

var_dump($a);

//输出

//array(3) { [0]= int(1) [1]= int(2) [2]= int(3) }

以上是静态变量的例子;

以上例子的惊天变量 $aa 是无法被外部访问的。

再举一个全局变量的例子:

?php

global $aa;

function a($a)

{

    global $aa;

    $aa[] = $a;

    return $aa;

}

a(1);

a(2);

a(3);

$aa[] = 4;

$aa[] = 5;

var_dump($aa);

//输出

//array(5) { [0]= int(1) [1]= int(2) [2]= int(3) [3]= int(4) [4]= int(5) }

这个时候,全局变量 $aa 是能被全局访问的。

php 的全局变量和静态变量怎么玩

最大的差别还是在于作用域。

举个例子:

?php

global $aa;

 

function a($a)

{

    global $aa;

    $aa[] = $a;

    return $aa;

}

 

a(1);

a(2);

a(3);

$aa[] = 4;

$aa[] = 5;

 

var_dump($aa);

//输出

//array(5) { [0]= int(1) [1]= int(2) [2]= int(3) [3]= int(4) [4]= int(5) }

这个时候,全局变量 $aa 是能被全局访问的。

PHP静态全局变量和普通全局变量有什么区别

以前在远标了解过全局变量与全局静态变量的区别:

(a)若程序由一个源文件构成时,全局变量与全局静态变量没有区别。

(b)若程序由多个源文件构成时,全局变量与全局静态变量不同:全局静态变量使得该变量成为定义该变量的源文件所独享,即:全局静态变量对组成该程序的其它源文件是无效的。

(c)具有外部链接的静态;可以在所有源文件里调用;除了本文件,其他文件可以通过extern的方式引用;

静态全局变量的作用:

(a)不必担心其它源文件使用相同变量名,彼此相互独立。

(b)在某源文件中定义的静态全局变量不能被其他源文件使用或修改。

(c) 只能在本文件中使用!具有内部链接的静态;不允许在其他文件里调用;

php全局变量在栈上吗

和静态变量都是保存在全局区的,普通变量保存在栈区,动态分配的内存空间是存在堆区的

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/293946.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-26 13:15
下一篇 2024-12-26 13:15

相关推荐

  • int类型变量的细节与注意事项

    本文将从 int 类型变量的定义、声明、初始化、范围、运算和类型转换等方面,对 int 类型变量进行详细阐述和讲解,帮助读者更好地掌握和应用 int 变量。 一、定义与声明 int…

    编程 2025-04-29
  • Python input参数变量用法介绍

    本文将从多个方面对Python input括号里参数变量进行阐述与详解,并提供相应的代码示例。 一、基本介绍 Python input()函数用于获取用户输入。当程序运行到inpu…

    编程 2025-04-29
  • Centos7配置静态ip

    本文将详细阐述如何在Centos7系统中配置静态ip。 一、查看网络接口 在配置静态ip之前,我们首先需要查看系统中的网络接口,以确定我们需要配置的网卡是哪一个。 ifconfig…

    编程 2025-04-29
  • 如何使用HTML修改layui内部样式影响全局

    如果您想要使用layui来构建一个美观的网站或应用,您可能需要使用一些自定义CSS来修改layui内部组件的样式。然而,修改layui组件的样式可能会对整个页面产生影响,甚至可能破…

    编程 2025-04-29
  • Python匿名变量的使用方法

    Python中的匿名变量是指使用“_”来代替变量名的特殊变量。这篇文章将从多个方面介绍匿名变量的使用方法。 一、作为占位符 匿名变量通常用作占位符,用于代替一个不需要使用的变量。例…

    编程 2025-04-29
  • Python变量在内存中的存储

    该文章将从多个方面对Python变量在内存中的存储进行详细阐述,包括变量的声明和赋值、变量的引用和指向、内存地址的变化、内存管理机制等。 一、声明和赋值 在Python中,变量声明…

    编程 2025-04-29
  • Python变量类型用法介绍

    Python是一种解释型编程语言,它提供了丰富的数据类型,包括数字、字符串、列表、元组、集合、字典等。Python变量类型的定义是Python程序开发的基础,本文将从以下几个方面对…

    编程 2025-04-28
  • Python print输出变量

    Python是一种脚本语言,语法简单易懂,目前被广泛应用于数据处理、人工智能、web开发、游戏开发等领域。其中print函数是Python中最常用的函数之一,用于将变量输出到控制台…

    编程 2025-04-28
  • Python定义变量

    Python是一门高级编程语言,变量是Python编程中非常重要的一个概念。Python的变量定义方式非常简单,可以在程序中随时定义一个变量来存储数据,这方便了整个程序的逻辑编写,…

    编程 2025-04-28
  • Python中如何定义一个变量

    Python是一种高级编程语言,使用它您可以轻松地定义和操作变量。Python中的变量属于动态类型变量,因此不需要在定义变量时指定其类型,而是在变量分配之前自动确定变量的数据类型。…

    编程 2025-04-28

发表回复

登录后才能评论