首頁  >  文章  >  後端開發  >  php使用Global定義全域變數使用方法

php使用Global定義全域變數使用方法

怪我咯
怪我咯原創
2017-06-19 14:34:241417瀏覽

Global是php中一個比較特殊的指令,大家直接叫他超級全域變數了,下面我來介紹我今天在使用Global定義全域學習筆記了

#很不習慣PHP中的變數作用域,PHP中函數變數和全域是完全隔絕的,也就是無法互相存取。
例如下面這樣:

 程式碼如下:

$test = 123;
 abc(); //这里什么都不输出,因为访问不到$test变量
function abc(){
    echo($test);
}$test = 123;
abc(); //这里什么都不输出,因为访问不到$test变量
function abc(){
    echo($test);
}


#如果,你想在函數內部存取外部變量,你需要這樣:

 程式碼如下:

$test = 123;
 abc(); //输出123
function abc(){
    global $test;
    echo($test);
}$test = 123;
abc(); //输出123
function abc(){
    global $test;
    echo($test);
}

但如果我們在函數中定義全域變數呢,像下面這樣:

程式碼如下:

function abc(){
    global $test;
    $test = 123;
}
abc();
echo($test); //输出123function abc(){
 global $test;
 $test = 123;
}
abc();
echo($test);


# //輸出123透過這種方式,我們可以在外部存取到函數內部定義的變數
在使用者自訂函數中,一個局部函數範圍將會被引入。任何用於函數內部的變數按缺省情況將被限制在局部函數範圍內(包括includerequire 導入的文件內的變數)!
解釋:A .php檔案的內Test_Global是定義好的第三方函數,該函數用include導入了B.php檔案內的$a的global全域變數,所以$a被限制在Test_Global局部函數範圍內,所以B.php文件內的$a的作用範圍都在Test_Global內,而不是作用了整個A.php內….
解決方案:
1. 衝出局部函數
 //A.php 檔案

程式碼如下:

<?php
function Test_Global()
{  
    Test();  
}  
include &#39;B.php&#39;;   //将include 从局部Test_Global函数中移出
$a = 0 ;
Test_Global();
echo $a;
?> 
//B.php 文件
<?php
function Test()
{
    global $a;
    $a =1;
}
?>


2.優秀的存取器

# 程式碼如下:

//A.php 文件
<?php
include &#39;B.php&#39;; 
$a =0;
Set_Global($a);
echo $a;
?> 
//B.php 文件
<?php
function Set_Global(&$var)
{
    $var=1;
}
?>


以上是php使用Global定義全域變數使用方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn