首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

PHP之static静态变量详解(一)

例如:外部变量(在PHP中指全局变量)虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。...所有的全局变量都是静态变量,而局部变量只有定义时加上类型修饰符static,才为局部静态变量静态变量可以在任何可以申请的地方申请,一旦申请成功后,它将不再接受其他的同样申请....2、函数体内如果在定义静态变量的同时进行了初始化,则以后程序不再进行初始化操作(出现在函数内部的基本类型的的静态变量初始化语句只有在第一次调用才执行)。...2、静态全局变量则限制了其作用域, 即只在定义变量的源文件内有效,在同一源程序的其它源文件中不能使用它。...php //--------------如何理解static静态变量-----------   /** 普通局部变量 */ function local() {     $loc = 0; //这样,如果直接不给初值

2.1K31

C++static声明静态局部变量 | 用static定义变量

,这是就需要指定该局部变量静态局部变量。...静态局部变量和自动变量的区别 静态局部变量静态存储区内分配存储单元, 在整个程序运行期间都不释放。 自动变量属于动态存储类别,存储在动态存储区空间,函数调用结束后即释放。...自动变量赋初值,不是在编译时进行的,而是在函数调用时进行,每调用一次函数重新给一次初值,相当于执行一次赋值语句。 如果在定义局部变量时不赋初值的话,对静态局部变量来说,编译时自动赋初值0或空字符。...num2=0;//定义自动变量且赋初值    static int num3=3;//定义静态局部变量    num2=num2+1;    num3=num3+1;   return num1+num2...C++用static定义变量 更多案例可以go公众号:C语言入门到精通

1.8K2828

【C++】静态成员变量 ( 静态成员变量概念 | 静态成员变量声明 | 静态成员变量初始化 | 静态成员变量访问 | 静态成员变量生命周期 )

" 静态成员变量 " ; 静态成员变量 声明 : 静态成员变量 是在 类定义时 , 在类的内部 进行 声明 ; class Student { public: // 带参构造函数 Student...cout << "执行 Student 的析构函数" << endl; } public: int m_age; // 年龄 int m_height; // 身高 // 在类内部定义静态成员...初始化有两种方式 : 声明 并 进行初始化 : 声明类内部已经定义静态成员变量 , 然后进行初始化 ; // 在类外部初始化静态成员变量 int Student::number = 1; 只进行初始化...: 只对 类内部已定义静态成员变量 进行单纯的赋值 ; // 在函数中为 类 静态成员变量 赋值 Student::number = 2; 4、静态成员变量访问 静态成员变量访问 : 使用域操作符访问..., 在 程序生命周期 之内 , 类的多个对象的 静态成员的值 是相同的 ; 二、完整代码示例 下面的代码中 : 定义了 Student 类 , 其中定义静态成员变量 number ; // 在类内部定义静态成员

31320

PHP类的静态(static)方法和静态(static)变量使用介绍

php中,访问类的方法/变量有两种方法: 1. 创建对象object = new Class(),然后使用”->”调用: 2....直接调用类方法/变量:class::attribute/function,无论是静态/非静态都可以。但是有前提条件: A. 如果是变量,需要该变量可访问。 B....如果是方法,除了该方法可访问外,还需要满足: b1) 如果是静态方法,没有特殊条件; b2) 如果是非静态方法,需要该方法中没有使用$this,即没有调用非静态变量/方法,当然,调用静态变量/方法没有问题...使用class::… 调用静态方法/变量,不需要执行构造函数创建对象; 3. 使用class::… 调用非静态方法/变量,也不需要执行构造函数创建对象。...静态变量 静态成员只保留一个变量值,而这个变量值对所有的实例都是有效,也就是说,所有的实例共享这个成员。 2.

4.1K10

静态局部变量静态全程变量static。

最容易想到的方法是定义为全局的变量,但定义一个全局变量有许多缺点,最明显的缺点是破坏了此变量的访问范围(使得在此函数中定义变量,不仅仅只受此函数控制)。...static 被引入以告知编译器,将变量存储在程序的静态存储区而非栈上空间,静态数据成员按定义出现的先后顺序依次初始化,注意静态成员嵌套时,要保证所嵌套的成员已经初始化了。...优点:静态全局变量不能被其它文件所用;其它文件中可以定义相同名字的变量,不会发生冲突。...(1)全局变量和全局静态变量的区别 1)全局变量是不显式用 static 修饰的全局变量,全局变量默认是有外部链接性的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过 extern...静态全程变量 静态全程变量就是指只在定义它的源文件中可见而在其它源文件中不可见的变量

90020

PHP笔记:系统内置的预定义变量

定义变量定义变量:系统内部定义变量,是PHP系统保存的一些常用变量,方便开发者使用,也是PHP系统自动收集的数据结果。...预定义变量都是数组(数组组合,有多个数据在一起),需要以数组的形式使用。 预定义变量也是变量,符合变量规则。 系统提供了以下9个预定义变量,每个变量都有自己特定的数据。...POST; //通过 post 方式提交的数据 $_REQUEST; //通过 get 和 post 提交的数据 $_SERVER; //用户和服务器的基本信息数据库(数据的名字不由开发者控制,是系统定义好的...,也是唯一一个不是以下划线开始的预定义变量 打印预定义变量: echo ''; print_r($GLOBALS); 实例: 想要获取来访者的IP地址:在$_SERVER中,使用REMOTE_ADDR...保存 echo $_SERVER['REMOTE_ADDR']; 声明:本文由w3h5原创,转载请注明出处:《PHP笔记:系统内置的预定义变量》 https://www.w3h5.com/post/301

71740

P002PHP开发之变量定义

4.静态变量 在函数内部static $a = 0; 注意:声明中用表达式的结果对其赋值会导致解析错误如static $a =3+3;(error) 静态变量仅在局部函数域中存在(函数内部),函数执行完之后...,变量值不会丢失,可用于递归调用 5.全局变量 在函数体内定义的global变量,函数体外可以使用,在函数体外定义的global变量不能在函数体内使用,在全局范围内访问变量可以用特殊的 PHP定义...a的值(引用改变了) 7.PHP 超全局变量$GLOBALS : 包含一个引用指向每个当前脚本的全局范围内有效的变量。...所有包含在该数组中的变量的存在与否以及变量的顺序均按照 php.ini 中的 variables_order 配置指示来定义。该数组没有直接模拟 PHP 4.1.0 的早期版本。...常量和变量不同: 常量前面没有美元符号($); 常量只能用 define() 函数定义,而不能通过赋值语句; 常量可以不用理会变量范围的规则而在任何地方定义和访问; 常量一旦定义就不能被重新定义或者取消定义

1.2K30

php中各种定义变量的方法小结

4.静态变量 在函数内部static $a = 0; 注意:声明中用表达式的结果对其赋值会导致解析错误如static $a =3+3;(error) 静态变量仅在局部函数域中存在(函数内部),函数执行完之后...,变量值不会丢失,可用于递归调用 5.全局变量 在函数体内定义的global变量,函数体外可以使用,在函数体外定义的global变量不能在函数体内使用,在全局范围内访问变量可以用特殊的 PHP定义...所有包含在该数组中的变 量的存在与否以及变量的顺序均按照 php.ini 中的 variables_order 配置指示来定义。该数组没有直接模拟 PHP 4.1.0 的早期版本。...如果使用了一个未定义的常量,PHP 假定想要的是该常量本身的名字,如同用字符串调用它一样(CONSTANT 对应 "CONSTANT")。此时将发出一个 E_NOTICE 级的错误。...常量和变量不同: 常量前面没有美元符号($); 常量只能用 define() 函数定义,而不能通过赋值语句; 常量可以不用理会变量范围的规则而在任何地方定义和访问; 常量一旦定义就不能被重新定义或者取消定义

3.6K30

什么是PHP中的可变变量和预定义变量

可变变量 可变变量是指一个变量变量名可以动态的设置和使用,一个可变变量获取了一个普通变量的指作为其变量名,这个变量就叫做可变变量。...预定义变量定义比那里是指PHP预先定义好的变量,不需要赋值,就可以直接使用。...常见的预定义变量解释 $_Server:服务器变量,包含头信息(header)、路径(path)和脚本为止等组成的数组。 $_ENV:环境变量,包含操作系统类型、软件版本等信息组成的数组。...$_COOKIE:HTTP Cookies变量,通过HTTP Cookies传递的变量组成的数组。 $_POST:HTTP POST变量,通过HTTP POST方法传递的已上传文件项目组成的数组。...$_GET:HTTP GET变量,通过HTTPGET方法传递的变量组成的数组。 以上就先说这几个。、 暖心小贴士 ps:预定义变量变量名就是所在数组的所在的数组索引。

2.9K30

什么是全局变量,局部变量静态全局变量静态局部变量

而常见作用域有以下几种: 块作用域,可见范围是从定义处到包含该定义的块结尾 函数作用域,goto语句的标签就具有函数作用域 文件作用域,从定义处到定义该文件的末尾都可见。...定义在函数之外的变量,就具有文件作用域了。...,局部变量静态局部变量静态全局变量 到这里,我们就可以很容易区分上面的变量类型了。...实际上这里只是换了一种说法: 全局:具有文件作用域的变量 静态:具有静态存储期或内部链接属性 局部:具有函数或块作用域的变量 因而结合起来,也就很好理解了。...局部变量:函数或块作用域的变量 静态局部变量:函数或块作用域,静态存储期 全局变量:具有文件作用域的变量 静态全局变量:内部链接属性的,具有文件作用域的变量 当然,这仅仅是为了区分它们,这并不是它们的严格定义

2.4K50

04_PHP基础——变量命名规则和预定义变量及可变变量

变量命名规则 1、 在PHP变量名字必须以“$”符号开始; 2、 名字由字母、数字和下划线“_”构成,但是不能以数字开头; 3、 在PHP中本身还允许中文变量(不建议)。 ?...预定义变量定义变量:提前定义变量,系统定义变量,存储许多需要用到的数据(预定义变量都是数组) $_GET:获取所有表单以get方式提交的数据 $_POST:POST提交的数据都会保存在此 $_REQUEST...:GET和POST提交的都会保存 $GLOBALS:PHP中所有的全局变量 $_SERVER:服务器信息 $_SESSION:session会话数据 $_COOKIE:cookie会话数据 $_ENV:...变量传值 将一个变量赋值给另外一个变量变量传值 变量传值一共有两种方式:值传递,引用传递 值传递:将变量保存的值赋值一份,然后将新的值给另外一个变量保存(两个变量没有关系) ?...在内存中,通常有以下几个分区 栈区:程序可以操作的内存部分(不存数据,运行程序代码),少但是快 代码段:存储程序的内存部分(不执行) 数据段:存储普通数据(全局区和静态区) 堆区:存储复杂数据,

1.9K20

静态变量与动态变量

0.静态存储与动态存储 1)静态存储变量通常是在变量定义时就分定存储单元并一直保持不变,直至整个程序结束。...通常把由于变量存储方式不同而产生的特性称为变量的生存期 4)静态存储只会初始化一次 摘自于:百度百科 1.区别 定义或者声明变量时,没有static修饰符的就是动态变量,有static修饰符的就是静态变量...2.动态变量(一下简称变量) 2.1全局变量 1)在所有函数的外部定义(包括主函数),定义之后的所有函数都能使用,属于静态存储 2)作用域为整个项目,即最终编译成可执行文件的所有文件中均可以使用动态全局变量...到其所在的{}的结束位置 3)生命周期为从函数调用到函数退出 4)无显式初始化时默认初始化值为随机值 3.静态变量 3.1静态全局变量 1)作用域为当前文件,从定义/声明位置到文件结尾 2)生命周期为从程序运行到程序退出...所以动态局部变量a掩盖了静态全局变量a 3.2静态局部变量 1)作用域为当前函数,从定义位置,到其所在的{}的结束位置 2)生命周期为从程序运行到程序退出,即贯穿整个运行时间,当下次函数调用时,静态局部变量不会被再次初始化

1.1K40
领券