我們知道,變數呢,其實就等於我們用來儲存資訊的容器。關於它的命名規則什麼的,相信大家也是比較清楚的,這裡就不贅述了。這裡呢,主要就來看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['y']=$GLOBALS['x']+$GLOBALS['y']; } myTest(); echo $y; ?>
以上是php怎麼讓變數稱為全域變數的詳細內容。更多資訊請關注PHP中文網其他相關文章!