➤6.2 區域、全域變數
在3.2介紹變數、基本型別時,即有簡略帶到區域變數和全域變數的差別,PHP的全域變數(global variable),乃指在整個程式區段中皆能使用。
而區域變數(local variable)則指僅能在該方法的範圍內生效。換言之,就是一頁程式當中同時有兩個變數名稱相同,但一個是區域、一個是全域的話,這兩個變數值仍是互不影響的(一個變數各自表述,互不干預的概念😆)。
#區域、全域變數之差別
<?php
/*全域、區域變數之差別*/
$a = "全域變數"."<br>";
function news(){
$a = "區域變數(我不會受到影響)"."<br>";
echo $a;
}
echo $a;
news(); //呼叫出來的區域變數值,並不會受到全域變數影響
echo $a; //呼叫時不受到影響
}
?>
但在區域變數的前面加上global指令還是能將其改變為全域變數。且一旦改變為全域變數後,變數值就會受到影響了!
#區域變數改為全域變數(加入global)
<?php
/*將區域變數改變為->全域變數*/
$b = "全域變數"."<br>";
function network(){
global $b; //加入global指令
$b = "區域變數(加了global就會受到影響嚕~)"."<br>";
echo $b;
}
echo $b;
network(); //呼叫出來的變數值,已經是全域變數了
echo $b.; //呼叫時會受到影響
}
?>
➤6.2 靜態變數
在區域變數中當變數值為多少,每當它被執行後,存留於記憶體中的變數就會被釋放掉。
而靜態變數static命令的功能在於,當我們執行區域變數它能夠保留函式(留存於記憶體不被釋放掉)的變數值。
#靜態變數(加入static)
<?php
/*靜態變數*/
//一般區域變數在執行後,此變數也就被釋放掉,不會存在記憶體中
//但加上靜態變數static指令,可以讓區域變數值持續存在,不因執行一次後就消失
function textbook(){
static $book;
$book += 3; //遞增加3後,存回於變數
echo $book . "本教科書<br/>";
}
textbook();
textbook();
textbook();
?>
沒有留言:
張貼留言