程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php變量作用域詳解(1/3)

php變量作用域詳解(1/3)

編輯:關於PHP編程

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

例如:

 代碼如下 復制代碼

<?php
$a = 1;
include 'b.inc';
?>


這裡變量 $a 將會在包含文件 b.inc 中生效。但是,在用戶自定義函數中,一個局部函數范圍將被引入。任何用於函數內部的變量按缺省情況將被限制在局部函數范圍內。例如:

 代碼如下 復制代碼

<?php
$a = 1; /* global scope */

function Test()
{
    echo $a; /* reference to local scope variable */
}

Test();
?>

這個腳本不會有任何輸出,因為 echo 語句引用了一個局部版本的變量 $a,而且在這個范圍內,它並沒有被賦值。你可能注意到 PHP 的全局變量和 C 語言有一點點不同,在 C 語言中,全局變量在函數中自動生效,除非被局部變量覆蓋。這可能引起一些問題,有些人可能不小心就改變了一個全局變量。PHP 中全局變量在函數中使用時必須申明為global。

global 關鍵字
首先,一個使用 global 的例子:


Example #1 使用 global

 代碼如下 復制代碼

<?php
$a = 1;
$b = 2;

function Sum()
{
    global $a, $b;

    $b = $a + $b;
}

Sum();
echo $b;
?>

以上腳本的輸出將是“3”。在函數中申明了全局變量 $a 和 $b,任何變量的所有引用變量都會指向到全局變量。對於一個函數能夠申明的全局變量的最大個數,PHP 沒有限制。

在全局范圍內訪問變量的第二個辦法,是用特殊的 PHP 自定義 $GLOBALS 數組。前面的例子可以寫成:


Example #2 使用 $GLOBALS 替代 global

 代碼如下 復制代碼

<?php
$a = 1;
$b = 2;

function Sum()
{
    $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}

Sum();
echo $b;
?>

1 2 3

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved