国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP的變量類型和作用域詳解

2020-03-24 18:54:21
字體:
來源:轉載
供稿:網友
PHP中變量的作用域可以分為:超全局(html' target='_blank'>全局變量的特殊類型,在局部范圍里可直接使用),全局,局部,靜態(是局部變量的特殊類型)
在PHP中,全局變量實際上是靜態全局變量,如果不用unset顯式的釋放,那么等腳本運行結束全局變量才會被釋放掉
局部靜態變量細分可以是 局部靜態函數變量(函數中聲明的static變量),局部靜態成員變量(類中聲明的 static 屬性,被所有類實例共享)
局部靜態變量只有腳本運行結束才會被自動釋放超全局變量:在一個腳本的任何作用域里都可以被訪問,這些都是PHP內置的
復制代碼 代碼如下:
$GLOBALS
$_SERVER
$_GET
$_POST
$_FILES
$_SESSION(持久化存儲)
$_COOKIE(持久化存儲)
$_REQUEST
$_ENV
全局變量:聲明的變量不在class,function,if等語言結構內部,如果要在class,function,if等語言內部使用,需要用關鍵詞global或者超全局變量$GLOBALS靜態變量: 在function中使用關鍵詞static聲明的變量,靜態變量的值保留直至腳本結束
局部變量:在class,function,if/while/for等結構語句內部聲明的變量1.global關鍵詞和$GLOBALS實例
復制代碼 代碼如下: ?php
$a = 0;
function foo()
{
global $a;
echo $a;
}
function foo2()
{
echo $GLOBALS['a'];
}
2.static 變量和普通局部變量區別實例
復制代碼 代碼如下: ?php
function foo1()
{
$var = 0;
$var++;
return $var;
}
echo foo1();
echo foo1();
//輸出都是1
function foo ()
{
static $var = 0;
$var++;
return var;
}
echo foo();
echo foo();
//第一次輸出1 第二次2
3.static 關鍵詞還可以聲明靜態屬性和靜態方法
靜態屬性只能被類調用,而不能被類實例調用
靜態方法里不能使用$this,只能用self訪問類的靜態屬性另外理解static變量的一段代碼:
復制代碼 代碼如下:
?php
class t
{
static $v = 10;
public function a()
{
static $var = 10;
$var++;
echo $var . " br
}
public static function aa()
{
self::$v++;
echo self::$v . " br
}
}
$o1 = new t();
$o1- //輸出11
$o2 = new t();
$o2- //輸出12
t::aa();//輸出11
$o1- aa();//輸出12
$o2- aa();//輸出13從上面的代碼中,可知如果一個類成員方法中有靜態變量,即使是不同的類實例,他們也會共享這個靜態變量,盡管這個靜態變量不是類靜態成員變量,這點容易讓人迷惑。
PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绥芬河市| 黎城县| 天门市| 云浮市| 漳州市| 灌云县| 扶绥县| 黑山县| 定远县| 广南县| 桓仁| 平凉市| 台中县| 汤原县| 浦北县| 静宁县| 惠州市| 讷河市| 昌平区| 大渡口区| 门头沟区| 新建县| 汉阴县| 闽侯县| 大方县| 乌兰察布市| 泸州市| 长乐市| 新乡县| 呼图壁县| 巩留县| 博乐市| 福建省| 始兴县| 岑巩县| 乡宁县| 彭泽县| 友谊县| 上饶市| 古田县| 鹿泉市|