先引入官網的一句話:
變數的範圍即它定義的上下文背景(也就是它的生效範圍)。大部分的 php 變數只有乙個單獨的範圍。這個單獨的範圍跨度同樣包含了 include 和 require 引入的檔案。
我理解的就是:php變數只有乙個單獨範圍就是指函式內變數的範圍單獨作用於函式內部,函式外部的變數作用域只在函式外,通俗的說就是內部的變數不能訪問外部的,同樣外部的也不能訪問內部的(特殊情況可以用global)。
1、函式外部變數在內部不可見(下面的這兩個$a是兩個不同的變數)
<?
php $a=
1;function
test(
)test(
);?>
上面的test執行是沒有輸出的
2、函式內部的變數在外部不可見
<?
phpfunction
test(
)echo $b;
?>
這個echo $b;輸出的依然為空
看看這乙個
<?
php $a=
3;function
test($b)
test(
$a);
?>
這個輸出的是3,其實這是乙個引數傳值問題,訪問的還是函式外部的$a.
3、用global訪問外部變數,此時要將函式內部的變數用global來定義,匯入外部的同名變數
<?php
$a= 25;
function test()
function test1()
test();
test1();
?>
上面的程式test匯入變數a的值輸出「這是test輸出:25」,
test輸出「這是test1輸出」。
在實際應用中極少會用global匯入外部變數,當需要使用外部變數的時候,只需在在方法體傳遞引數即可(第2步的看一看就實現了在函式內部訪問外部變數)。
在用wile(條件)迴圈的時候,在while迴圈裡面可以訪問迴圈體外面的變數(包括條件部分),在while迴圈外面也可以訪問迴圈體內部的變數,其實while迴圈和for迴圈不是函式,只是形式上看似函式,while迴圈沒function函式宣告,while迴圈和for迴圈在函式體內部,其本身不是函式。
php變數作用域
1 在php中變數主要有 內建超級全域性變數,一般的變數,常量,全域性變數,靜態變數等。內建超級全域性變數 可以在指令碼的任何地方使用和可見。即如果我們在乙個php頁面中改變了其中的乙個值,那麼在其他php頁面中使用時,它的值也會發生改變。常量 一旦被宣告將可以在全域性可見,也就是說,它們可以函式內...
php變數作用域
學過c的人用php的時候一般會相當順手,而且感到php太方便太輕鬆。但在變數作用域這方面卻與 c有不同的地方,搞不好會相當鬱悶,就找不到錯誤所在。昨晚就與到這麼乙個問題,是全域性變數在函式中的問題。今天搜尋了一下,發現一篇相當不錯的文章,講了php中的變數作用域。是一位翻譯的 在這貼一下 變數的範圍...
PHP變數作用域
php變數的4個作用域 在php指令碼的任何位置都可以宣告變數,但是,宣告變數的位置會大大影響訪問變數的範圍。這個可以訪問的範圍稱為作用域scope。php變數有4種作用域 區域性變數 在函式內部宣告的變數就是區域性變數,它儲存在記憶體的棧中,所以速度很快。區域性變數很有用,因為它消除了出線意外 的...