1、php中沒有全域靜態變數這一說法。
以前做.Net開發,可以用以下的方法去緩存一些資料:
view plaincopy to clipboardprint?
public class Test {
private static int Count = 0; //變數在整個應用程式中都有效。
}
public class Test{
private static int Count = 0; //變數在整個應用程式中都有效。
}
而php是一種解釋型的語言,雖然有static修飾符,但意思與.Net中的完全不一樣。
即使把類別中的一個變數宣告為static,這個變數也只在目前頁面層級的應用程式領域中有效。
2、理解變數作用域。
在方法體外聲明的變量,在方法體內是無法訪問的。
如:
view plaincopy to clipboardprint?
<?php
$url = " www.webjx.com ";
function _DisplayUrl() {
echo $url;
}
function DisplayUrl() {
global $url;
echo $url;
}
_DisplayUrl();
DisplayUrl();
?>
<?php
$url = " www.webjx.com ";
function _DisplayUrl() {
echo $url;
}
function DisplayUrl(){
global $url;
echo $url;
}
_DisplayUrl();
DisplayUrl();
?>
_DisplayUrl方法是不會顯示任何結果,因為變數$url在方法體_DisplayUrl中是無法存取的,在$url前加上global即可,如DisplayUrl方法。
在方法體中定義的global變數可以在方法體外存取:
view plaincopy to clipboardprint?
<?php
function _DisplayUrl() {
global $myName;
$myName='yibin';
}
_DisplayUrl();
echo $myName; //output yibin
?>