首頁  >  文章  >  後端開發  >  php的變數範圍是什麼

php的變數範圍是什麼

怪我咯
怪我咯原創
2017-06-19 14:56:161102瀏覽

變數的範圍即它定義的上下文背景(也就是它生效的範圍)。大部分的 PHP 變數只有一個單獨的範圍。這個單獨的範圍跨度同樣包含了include 和require 引入的檔案

例如:

#程式碼如下:

<?php 
$a = 1; 
include &#39;b.inc&#39;; 
?>

這裡變數$a 將會在包含檔案 b.inc 中生效。但是,在使用者自訂函數中,一個局部函數範圍將會被引入。任何用於函數內部的變數按缺省情況將被限制在局部函數範圍內,此時為局部變數。
  
  PHP 中全域變數在函數中使用時必須申明為global。
  在函數中使用global宣告的變數即為全域變量,可以在函數外使用。注意:global宣告變數時,不能直接對變數賦值,需要先宣告後賦值。

  在全域範圍內,也可以透過$GLOBALS存取全域變量,在函數內不需要使用global關鍵字來存取全域變數了。 $GLOBALS 是一個關聯數組,每個變數為一個元素,鍵名對應變數名,值對應變數的內容。 $GLOBALS 之所以在全域範圍內存在,是因為 $GLOBALS 是一個超全域變數
  常數可以不用理會變數的作用域而在任何地方定義和存取;

  變數範圍的另一個重要特性是靜態變數(static variable# )。靜態變數僅在局部函數域中存在,但當程式執行離開此作用域時,其值並不會遺失。靜態變數僅在第一次呼叫時初始化,宣告時可以對其賦值,不能是表達式值。如果在宣告中以表達式的結果對其賦值會導致解析錯誤。

  當把一個引用(帶上&的變數或物件)賦值給一個靜態變數時,引用並不是靜態地儲存的,第二次呼叫函數時靜態變數其值並沒有被記住。同樣,當把一個引用(帶上&的變數或物件)賦值給global變數時,此變數的變化對函數外不起作用,作用範圍只在該函數內。

以上是php的變數範圍是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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