PHP中Global和Local范围以及Static变量

1. Local scope

function update_counter()

{

$counter++;//此处$counter为局部变量,与函数外的$counter非同一个

}

$counter = 10;

update_counter();

echo $counter;

//输出:10

2. Global scope

function update_counter()

{

global $counter;//利用global关键字在函数内进行声明即可获取全局域的$counter

$counter++;

}

$counter = 10;

update_counter();

echo $counter;

//输出: 11

function update_counter()

{

$GLOBALS[counter]++;

}

$counter = 10;

update_counter();

echo $counter;

//输出:11

3. Static variables

function update_counter()

{

static $counter = 0;//利用static关键字进行声明$counter,具有局部域

$counter++;

echo "Static counter is now $counter\n";

}

$counter = 10;

update_counter();

update_counter();

echo "Global counter is $counter\n";

/*输出:

Static counter is now 1

Static counter is now 2

Global counter is 10

*/

时间: 2024-10-09 21:05:14

PHP中Global和Local范围以及Static变量的相关文章

static变量一般是放在.cpp或.c文件中

static变量是有文件作用域的, 在a.c中定义的,就不能在b.c或者其它文件中用了. 至于static变量, 如果要把它的声明放进.h文件, 则它就不应该是一个static变量了, static变量一般是放在.cpp或.c文件中,且声明和定义在一起 static变量一般是放在.cpp或.c文件中,布布扣,bubuko.com

C++ 静态static 变量在 cocos2d-x 里面使用误区

void Cms::showMonster(CCArray* monsterArray,int type) { <span style="color:#ff0000;">static int posN=0; </span> for(int i=0;i<monsterArray->count();i++) { auto monsterSprite=(CCSprite*)monsterArray->objectAtIndex(i); if(type

java之static变量与全局、局部变量的区别

static变量与全局.局部变量的区别 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量.全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式.这两者在存储方式上并无不同.这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的.而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它.由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函

global,local,static的区别

1.在函数内部使用global关键字定义的变量可以成为全局变量,如果该变量已经被定义了,那么他的值就是原来的值,否则就是一个新的全局变量(一句话:已存在就不再创建): 1 <?php 2 $a=1; 3 function run(){ 4 global $a; 5 $a=10; 6 $a++; 7 } 8 run(); 9 echo "Global variable a=$a \n"; 10 $b=100; 11 function run1(){ 12 $b=10; 13 $b+

leetcode 775. Global and Local Inversions ---找规律

题解: 在global和local出现的情况相等时候,会发现,将local中出现逆序的情况反转,就能够得到一个升序排列的数组, 否则,如果swap两个逆序之后,不是升序的,会导致global的个数大于local的个数,如[1,2,0]中,2和0 交换后,不是升序 排列,除了2大于0,global的统计中1也大于0,因此glboal要比local的次数要多 bool isIdealPermutation(vector<int>& A) { if(A.size()<=1) retur

[Swift]LeetCode775. 全局倒置与局部倒置 | Global and Local Inversions

We have some permutation Aof [0, 1, ..., N - 1], where N is the length of A. The number of (global) inversions is the number of i < j with 0 <= i < j < N and A[i] > A[j]. The number of local inversions is the number of i with 0 <= i <

java中静态代码块的用法—— static用法详解

(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用比如main方法就必须是静态的 这是程序入口两者的区别就是:静态代码块是自动执行的;静态方法是被调用的时候才执行的. 静态方法(1)在Java里,可以定义一个不需要创建对象的方法,这种方法就

[转载] java中静态代码块的用法 static用法详解

(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用比如main方法就必须是静态的 这是程序入口两者的区别就是:静态代码块是自动执行的;静态方法是被调用的时候才执行的. 静态方法(1)在Java里,可以定义一个不需要创建对象的方法,这种方法就

java中静态代码块的用法 static用法详解

(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用比如main方法就必须是静态的 这是程序入口两者的区别就是:静态代码块是自动执行的;静态方法是被调用的时候才执行的.静态方法(1)在Java里,可以定义一个不需要创建对象的方法,这种方法就是