php函數的作用域
Ⅰ php函數的變數和作用域
<?php
$global_a="global"; //這是一個全局變數。
function private_test(){
$private_a="private"; //這是一個局部變數,其有效范圍就是這個函數內部。
echo $private_a;
}
echo $private_a; //函數外部就不能再調用其局部變數了。
Ⅱ Php全局變數怎麼使用 他的作用域是什麼
PHP全局變數在使用時,需要使用global 進行聲明,如:
global$test;
PHP Global變數的作用是定義全局變數,但是這個全局變數不是應用於整個網站,而是應用於當前頁面,包括include或require的所有文件。
Ⅲ PHP:靜態變數只存在於函數作用域內
static 是讓變數 不在函數結束以後 跟著一起結束
你要是想在函數外用 就用global關鍵字
Ⅳ 淺談php中include文件變數作用域
本文給大家總結了php中include文件時的幾種情況下的作用域,十分的簡單實用,希望對大家熟悉include的使用能夠有所幫助。
在php中我們有時候需要include一個文件。比如我前段時間在寫一個框架的時候,打算用原生的php作為模板,然後寫一個display方法引入模板文件就可以,但是這只是我的意淫而已。
寫完後發現在模板中所有的變數都提示未定義。通過各種研究和查找資料,總結了include文件時的幾種情況下的作用域。
第一種情況:A文件include
B文件,在B文件中可以調用A中的變數。
A文件代碼:
1
2
3
4
?php
$aaa
=
'123';
include
B.php;
B文件代碼:
1
2
3
?php
echo
$aaa;
可以正常輸出內容。
第二種情況:A文件include
B文件,然後在A文件中可以調用B文件的變數。
A文件代碼:
1
2
3
4
5
?php
include
B.php;
echo
$fff;
B文件代碼:
1
2
3
?php
$fff
=
'i
am
f';
這個時候是可以正常輸出內容的。
第三種情況:A文件的某個類的某個方法中調用B文件,然後在B文件中可以調用該方法中的變數。
A文件代碼:
1
2
3
4
5
6
7
8
9
10
11
?php
class
test{
public
function
show(){
$bbb
=
'abc';
include
B.php;
}
}
$t
=
new
test;
$t-show();
B文件的代碼:
1
2
3
?php
echo
$bbb;
這個時候是可以正常輸出內容的。
第四種情況:A文件通過定義的一個函數引入B文件,在B文件中無法使用A中的變數,但是可以使用A文件中調用函數(display)中的變數。
A文件代碼:
1
2
3
4
5
6
7
8
9
?php
$aaa
=
'123';
function
display($file){
$bbb=
'asdasdas';
include
$file;
}
display(B.php);
B文件代碼:
1
2
3
?php
echo
$aaa;
echo
$bbb;
運行後$aaa提示未定義,$bbb可以正常輸出。
所以我開始准本用一個display方法來引入模板是不可行的。根據方面的三種情況,最後我選擇了寫一個類來導入模板文件。目前ThinkPHP和Smarty也都是用類來引入模板文件的。文中不足之處歡迎指正。
以上所述就是本文的全部內容了,希望大家能夠喜歡。
Ⅳ 說明函數中變數作用域的范圍 php
希望對你有幫助!!!!!!!!!!!!變數的作用域就是它的有效范圍。對於大多數PHP的變數只有一個作用域。在用戶自定義函數里採用局部變數作用域。所有的函數內使用的變數被設置為局部變數。例如:$a=1; /* global scope */ Function Test() { echo $a; /* reference to local scope variable */ } Test(); 這段程序不會輸出任何的東西因為echo語句要輸出局部變數 $a ,而函數內的 $a 從未被賦過值。你可能注意到和C語言有點小小的區別,C中全局變數可以直接在函數內引用,除非它被一個局部變數所覆蓋。因為這使得人們可能不注意修改了全局變數的值。在PHP中要返兆缺在函數內部使用全局變數必須顯式的說明。例如:$a=1; $b=2; Function Sum() { global $a,$b; $b = $a + $b; } Sum(); echo $b; 上面程序將輸出"3"。通過在函數內部聲明$a和$b是全局變數,所有變數都參考全局。一個函數可以操縱的全局變數的數量沒有限制。第二種存取全局變數的方法是使用PHP定義的$GLOBALS數組。上面的例子可以寫成:$a=1; $b=2; Function Sum() { $GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"]; } Sum(); echo $b; $GLOBALS數組是:用全局變數的名字做鍵值而該變數的值做對應數組元素值的關聯數組。作用域的另外一個重要的值得注意的地方是static 變數。一個 static變數存在於局部函數中,但當程序離開這個函數時它的值不會丟失。考慮下面的例子:Function Test() { $a=0; echo $a; $a++; } 這個函數是沒用的,因為每次調用時它都先把$a賦為 0 然後列印出"0"。 對$a++的自加沒漏辯有任何效果因為函數調用結束後變數$a 就被釋放了。要使記數程序有效記數而不丟掉當前的記數結果,$a 要聲名為static變數:Function Test() { static $a=0; echo $a; $a++; } 現在,每次調用Test()函數它都會列印出$a的值並把增加它的值。當使用遞歸函數時靜態變數是必不可少的。遞歸函數就是調用自己的函數。寫遞歸函數時一定要十分小心,因為它的循環次數不確定。你必須確保猜大有足夠的條件結束遞歸過程。下面是一個簡單的遞歸函數記數到10:Function Test() { static $count=0; $count++; echo $count; if($count < 10) { Test(); } }
Ⅵ 關於php局部變數作用域
作用域是一樣的,你第一次用for定義了一個$。,但是第二次for的時候,又用$i=0給重新賦值為0了。
第一次for循環的時候定義了一個$i,for循環跑完之後,接著第二次for循環
這時把$i的值改為0了,開始循環了。
$i一個變數
用2個for循環
沒有沖突的,你可以順著for循環理一下思路,
不好意思,我語言組織的也不太好
Ⅶ PHP 變數作用域是怎麼樣的
關於php的變數作用域是有兩種的!
一種是在函數外的叫全局變數,一種在函數內的變數叫做局部變數。兩者是互不影響檔中的!
舉個例子:
$a=1;
functionA(){
$a=2;
$b=1;
$sum=$a+$b;
echo$sum;
}
$a++;
A();
echo"和".$a;
得到的結果會是:3和2
意思就是,全局變數$a = 1; 局部變數$a = 2;函數內 對$a的所有操作都是$a=2進行計算。而函數下面有$a是不會受函數內的$a=2影響。
而如果要讓函數內的$a受到影響,很容易!那就是用global關鍵字定義函數內的$a;空納那麼$a就是函數外的1了。
$a=1;
functionA(){
global$a;//全局變數,等於函數行虧山外的$a=1
$b=1;
$sum=$a+$b;
echo$sum;
}
$a++;
A();
echo"和".$a;
得到的結果會是:2和2
具體的就是這樣一種情況!
希望我的回答對樓主有幫助,不懂可以繼續追問。