PHP静态静态变量与普通变量的区别
PHP静态静态变量与普通变量的区别将静态添加到变量的前面是静态变量(静态变量)。
静态变量和普通变量的区别在于非静态全局变量的范围是整个源程序。当一个源程序由多个源文件中,非静态的全局变量在所有源文件有效。静态全局变量限制其范围,只有在定义变量的源文件是有效的,并不能用在同一源程序的其他源文件。由于静态全局变量范围局限于一个源文件,它只能用于源文件中的函数,这样可以避免造成其他源文件错误。
静态变量与普通变量的区别:
静态全局变量和一般全局变量之间的区别:静态全局变量只在其他文件单元中首先被创建和阻止;
静态局部变量区别于普通局部变量:静态局部变量只初始化一次,下一次基于结果值初始化。
静态函数和普通函数的区别:静态函数只有一部分在内存中,普通函数在每个调用中维护一个副本。
在全局变量之前使用关键字静态,全局变量被定义为全局静态变量。
1)内存中的位置:静态存储区域(在整个程序运行期间存在静态存储区域)
2)初始化:初始化的全局静态变量会被自动初始化为0(自动程序的对象的值是任意的,除非它是显示初始化)。
3)范围:全局静态变量在文件的声明之外是不可见的。确切地说,从定义的点到文件的结尾。
静态变量的好处:
它不会被其他文件访问,修改其他文件中可以使用相同名称的变量,并且不冲突。
内存中的位置:静态存储区
初始化:初始化的全局静态变量会被自动初始化为0(自动程序的对象的值是任意的,除非它是显示初始化)。
作用域:作用域仍然是局部作用域,范围在声明函数或块时结束。
注意:当静态用于修改本地变量时,它将本地变量的位置从原来的堆栈存储到静态存储区域,但本地静态变量在离开范围后不会被销毁,但它仍然驻留在内存中,直到程序完成,但我们不能再访问他了。
当静态用于修改全局变量时,它会改变全局变量的范围,在声明文件时不可见,但不会改变它的位置或静态存储区域。
普通函数示例:
< PHP
函数测试(){
w3sky = 0美元;
echo $ w3sky;
w3sky美元+ +;
每个通话/套w3sky美元的价值功能是0和0的输出。添加一个到w3sky +变量没有影响,因为一旦函数被撤回,变w3sky美元不存在。* /
}
>
定义变量w3sky美元为静态(static),代码如下:
< PHP
函数测试(){
静态w3sky = 0美元;
echo $ w3sky;
w3sky美元+ +;
} / /这个函数调用测试()每个输出w3sky美元价值和加一。
>
静态变量也提供了一种处理递归函数的方法。递归函数是一种调用自己的方法。在编写递归函数时要小心,因为它可能是无限递归的,并且没有退出。一定要有一个停止递归的方法。下面的简单函数递归计数为10,使用静态变量$来决定何时停止,静态变量和递归函数的例子:
< PHP
函数测试(){
静态$ = 0;
数+;
回波计数;
如果(计数为10){
测试();
}
数美元--;
}
>
注意:静态变量不能用表达式的方式来声明,例如,静态$ = 1 + 2;静态的int = 1是错误的,这种声明方式是正确的。
谢谢你的阅读。我希望你能帮助你,谢谢你对这个站的支持。