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
?>