静态变量只存在于函数作用域内,也就是说,静态变量只存活在栈中。一般的函数内变量在函数结束后会释放,比如局部变量,但是静态变量却不会。就是说,下次再调用这个函数的时候,该变量的值会保留下来。
只要在变量前加上关键字static,该变量就成为静态变量了。
01 |
<?php |
02 |
function test()
|
03 |
{
|
04 |
static $nm = 1;
|
05 |
$nm = $nm * 2;
|
06 |
print $nm . "<br />" ;
|
07 |
}
|
08 |
|
09 |
// 第一次执行,$nm = 2
|
10 |
test();
|
11 |
// 第一次执行,$nm = 4
|
12 |
test();
|
13 |
// 第一次执行,$nm = 8
|
14 |
test();
|
15 |
?> |
程序运行结果:
1 |
2 |
2 |
4 |
3 |
8 |
函数test()执行后,变量$nm的值都保存了下来了。
在class中经常使用到静态属性,比如静态成员、静态方法。
Program List:类的静态成员
静态变量$nm属于类nowamagic,而不属于类的某个实例。这个变量对所有实例都有效。
::是作用域限定操作符,这里用的是self作用域,而不是$this作用域,$this作用域只表示类的当前实例,self::表示的是类本身。
01 |
<?php |
02 |
class nowamagic
|
03 |
{
|
04 |
public static $nm = 1;
|
05 |
|
06 |
function nmMethod()
|
07 |
{
|
08 |
self:: $nm += 2;
|
09 |
echo self:: $nm . '<br />' ;
|
10 |
}
|
11 |
}
|
12 |
|
13 |
$nmInstance1 = new nowamagic();
|
14 |
$nmInstance1 -> nmMethod();
|
15 |
|
16 |
$nmInstance2 = new nowamagic();
|
17 |
$nmInstance2 -> nmMethod();
|
18 |
?> |
程序运行结果:
1 |
3 |
2 |
5 |
转自:http://www.nowamagic.net/php/php_StaticVariable.php
相关推荐
在PHP中,声明静态变量非常简单,只需在变量前加上关键字static即可。例如: ```php function test() { static $nm = 0; $nm += 1; echo $nm; } test(); // 输出 "1" test(); // 输出 "2" test(); // 输出 "3" ``...
计算机后端-PHP视频教程. php与mysql加强- 05. php加强57-static静态变量wmv.wmv
PHP中静态变量分为局部静态变量和全局静态变量,它们都有存储状态的特性,但使用场景和初始化规则有所不同。在编程中,合理地利用静态变量,可以有效管理函数内部数据的持久化状态和程序的全局状态。 局部静态变量...
PHP中static静态变量和普通变量的区别涉及到变量的作用域、生命周期以及存储位置等重要概念。对于初学者来说,理解这些区别对于编写更可靠和可维护的PHP代码至关重要。 首先,让我们澄清普通变量(也称为动态变量)...
分析了php中静态类与静态变量用法类的区别,创建对象$object = new Class(),然后使用”->”调用:$object->attribute/function,前提是该变量/方法可访问。直接调用类方法量:class::attribute/function,无论是静态/...
在PHP的OOP中,`static`关键字扮演着重要的角色,它用于声明类的静态变量和静态方法。静态变量和方法与类紧密关联,而非与类的实例相关。下面我们将深入探讨`static`关键字的工作原理及其应用场景。 1. **静态变量*...
在PHP编程语言中,`static`关键字用于定义静态变量,这是一种特殊的变量类型,它具有不同于常规局部变量的行为。本文将详细讲解PHP中静态变量的使用方法及其特点。 首先,了解静态变量的基本概念。静态变量仅在局部...
在PHP编程语言中,静态变量是一种特殊的成员变量,它们在类定义时被声明,并在整个脚本执行期间保留其值。与实例变量不同,静态变量不依赖于类的实例,而是与类本身相关联。理解静态变量的初始化是掌握PHP面向对象...
在PHP编程语言中,静态变量是一种特殊的变量类型,它的特性在于其值能够在函数多次调用之间保持,即使函数执行完毕也不会被销毁。这种特性使得静态变量在处理计数、存储状态或者共享数据时非常有用。下面我们将深入...
声明静态变量使用`static`关键字,例如: ```php class MyClass { static $count = 0; } ``` 在这个例子中,`$count`是一个静态变量,无论创建多少个`MyClass`的对象,`$count`的值都是共享的。 2. 静态方法 静态...
2. 静态成员变量在内存中只有一份拷贝,所有类的实例共享同一份数据,这意味着修改静态变量会影响到所有实例。 3. 由于静态成员变量在类加载时就已经存在,它们在程序执行期间始终保持不变,不受类实例生命周期的...
静态变量在类中声明时使用`static`关键字。与常规的实例变量不同,静态变量不随着类的每个实例创建而独立存储,而是共享同一个内存空间。这意味着,无论创建多少个类的实例,静态变量的值都是唯一的,所有实例都能...
在PHP编程语言中,`static`关键字用于定义两种不同的概念:静态类和静态变量。这里我们将深入探讨这两种用法的区别及其在实际应用中的意义。 首先,让我们了解静态类。PHP中并没有所谓的“静态类”,这个术语可能是...
在PHP中,我们可以在类内部使用`static`关键字来定义静态变量。例如: ```php class MyClass { public static $endpoint; public static $accessKeyId; public static $accessKeySecret; public static $...