首頁  >  文章  >  後端開發  >  php怎麼讓變數稱為全域變數

php怎麼讓變數稱為全域變數

silencement
silencement原創
2019-09-26 09:34:202804瀏覽

php怎麼讓變數稱為全域變數

我們知道,變數呢,其實就等於我們用來儲存資訊的容器。關於它的命名規則什麼的,相信大家也是比較清楚的,這裡就不贅述了。這裡呢,主要就來看PHP變數的兩個作用域,全域變數&局部變數。

看到這兩個變數作用域,相信大家腦海裡會浮現兩個單字global&static。沒錯,就是這兩個字。

我們知道,在所有函數外部定義的變量,擁有全域作用域。除了函數外,全域變數可以被腳本中的任何部分訪問,要在一個函數中存取一個全域變量,需要使用 global 關鍵字。然而,在 PHP 函數內部宣告的變數是局部變量,僅能在函數內部存取。下面,我們來看個實例:

<?php
$x=5; // 全局变量

function myTest()
{
    $y=10; // 局部变量
    echo "<p>测试函数内变量:<p>";
    echo "变量 x 为: $x";
    echo "<br>";
    echo "变量 y 为: $y";
}

myTest();

echo "<p>测试函数外变量:<p>";
echo "变量 x 为: $x";
echo "<br>";
echo "变量 y 为: $y";
?>

在上述實例中 myTest() 函數定義了 $x 和 $y 變數。 $x 變數在函數外聲明,所以它是全域變量, $y 變數在函數內宣告所以它是局部變數。

當我們呼叫myTest()函數並輸出兩個變數的值,函數將會輸出局部變數$y 的值,但不能輸出$x 的值,因為$x 變數在函數外定義,無法在函數內使用,如果要在函數中存取一個全域變量,則需要使用global 關鍵字。

然後我們在myTest()函數外輸出兩個變數的值,函數會輸出全局部變數$x 的值,但不能輸出$y 的值,因為$y 變數在函數中定義,屬於局部變數。

由此,我們可以知道,我們可以在不同函數中使用相同的變數名稱,因為這些函數內定義的變數名是局部變量,只作用於該函數內。這也算是小技巧了哈。

廢話不多說,我們先來看global關鍵字。 global 關鍵字用於函數內存取全域變數。在函數內呼叫函數外定義的全域變量,我們需要在函數中的變數前面加上global 關鍵字,來看個實例:

<?php
$x=5;
$y=10;
function myTest()
{
    global $x,$y;
    $y=$x+$y;
}
myTest();
echo $y; // 输出 15
?>

PHP 將所有全域變數儲存在一個名為$GLOBALS[index] 的陣列中。 index 保存變數的名稱。這個數組可以在函數內部訪問,也可以直接用來更新全域變數。所以,上面的實例可以寫成這樣:

<?php
$x=5;
$y=10;

function myTest()
{
    $GLOBALS[&#39;y&#39;]=$GLOBALS[&#39;x&#39;]+$GLOBALS[&#39;y&#39;];
}

myTest();
echo $y;
?>

以上是php怎麼讓變數稱為全域變數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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