1、php中沒有全局靜態(tài)變量這一說法。
以前做.Net開發(fā),可以用如下的方法去緩存一些數(shù)據(jù):
view plaincopy to clipboardprint?
public class Test {
private static int Count = 0; //該變量在整個(gè)應(yīng)用程序中都有效。
}
public class Test{
private static int Count = 0; //該變量在整個(gè)應(yīng)用程序中都有效。
}
而php是一種解釋型的語(yǔ)言,雖然有static修飾符,但意思與.Net中的完全不一樣。
即使把類中的一個(gè)變量聲明為static,這個(gè)變量也只在當(dāng)前頁(yè)面級(jí)的應(yīng)用程序域中有效。
2、理解變量作用域。
在方法體外聲明的變量,在方法體內(nèi)是訪問不到的。
如:
view plaincopy to clipboardprint?
<?php
$url = "www.jzxue.com";
function _DisplayUrl() {
echo $url;
}
function DisplayUrl() {
global $url;
echo $url;
}
_DisplayUrl();
DisplayUrl();
?>
<?php
$url = "www.jzxue.com";
function _DisplayUrl() {
echo $url;
}
function DisplayUrl(){
global $url;
echo $url;
}
_DisplayUrl();
DisplayUrl();
?>
_DisplayUrl方法是不會(huì)顯示任何結(jié)果,因?yàn)樽兞?url在方法體_DisplayUrl中是無法訪問的,在$url前加上global即可,如DisplayUrl方法。
在方法體中定義的global變量可以在方法體外訪問:
view plaincopy to clipboardprint?
<?php
function _DisplayUrl() {
global $myName;
$myName='yibin';
}
_DisplayUrl();
echo $myName; //output yibin
?>
新聞熱點(diǎn)
疑難解答