wordpress CMS主题 微信
Home > 网站建设 > 全局變量、靜態變量以及局部變量

全局變量、靜態變量以及局部變量

高时银博客 网站建设 点击: 1,389 次 0 0

前面我們談過變量的幾大種類:bool變量、整型變量、字符串變量、浮點型變量等等。本節再來從變量的功能再來談談變量:全局變量局部變量以及靜態變量。(提示:PHP中變量名是區分大小寫的,而其它如函數名類名等是不區分大小寫的)

1、全局變量。

全局變量也稱為外部變量,它是在函數外部定義的變量。 它不屬於哪壹個函數,它屬於壹個源程序文件。其作用域是從定義該變量的位置開始至源文件結束。php中的函數要想調用全局變量有兩種方法:(1)在變量前加global ;(2)使用全局數組GLOBAL["變量名"] 。通過下面的實例可以了解到全局變量怎樣使用:

<?php$a=99;$b=88;function table()

{

global $a;  //通過global關鍵字來調用全局變量

$GLOBALS['b']=188; //通過超全局數組來調用全局變量,並更改變量$b的值為188;

$a=100;  把變量$a的值改成100;

//      $b=188;

}

table(); //调用函数

echo $a; //输出$a的值

echo "<br>";

echo $b;//输出$b的值

?>

輸出結果為:100   188

2、局部變量。

上面的實例中,如果不使用關鍵字global和全局數組,而是直接更改函數裏面的變量值,那麽函數裏的變量就變成了局部變量,也就是說函數結束後,這些變量就被釋放了,不存在了。所以,也就影響不了開頭定義的全局變量的值了。那麽,輸出結果就是原來的值:99 88 。也就是說,局部變量出了函數,就不起作用了。

3、靜態變量。

靜態變量只存在於函數作用域內,也就是說,靜態變量只存活在棧中。壹般的函數內變量在函數結束後會釋放,比如局部變量,但是靜態變量卻不會。就是說,下次再調用這個函數的時候,該變量的值會保留下來。只要在變量前加上關鍵字static,該變量就成為靜態變量了。下面,我通過壹個小實例來做下說明:

<?phpfunction table(){static $a=0;  //定义了一个静态变量,并赋值为0;

echo $a;  //先输出变量

echo "<br>";

$a++;  //再自加1

}

table();

table();

table();

table();

?>

輸出 的結果就是: 0   1   2   3  。如果不定義成靜態,那麽每次輸出都會是0,那是因為在自加前就已經輸出了變量的值。


文章作者:高时银博客
本文地址:http://wanlimm.com/77201404041855.html
版权所有 © 转载时必须以链接形式注明作者和原始出处!

目前还没有评论。赶快来坐沙发吧。

发表评论