在程式內定義的變數稱為###局部變數,只在程式內部使用,隨程式結束而消失。定義在程式外部的變數就叫全域變數,可以被程式呼叫,但不會隨程式結束而消失。前面的章節分別介紹了php函數的自訂函數的局部變數和自訂函數的全域變數。定義一個函數 這個函數裡的變數都是局部變數 它們只能在這個函數內部使用 return是這個函數的回傳值 呼叫這個函數就會輸出這個值 這個值可以是函數內的變數 也就是局部變數。而全域變數是在函數外部定義的變量,它的作用域從定義處一直到檔案結尾。
在php中函數被視為單獨的程式片,所以局部變數會覆寫全域變量,即使局部變數中並定義沒有全域變數相同的變量,也會被覆寫。下面透過一個實例來說明它們的差異:
<?php //局部变量测试 $s1= "out s1"; //全局变量 function say(){ $s1 = "in s1"; //局部变量 echo "say():$s1"; } say(); //输出局部变量: in s1 echo "<br/>"; echo "function out:$s1"; ////输出全局变量:out s1 //static变量测试 function count1(){ $num = 0; $num++; echo $num." "; } function count2(){ static $num = 0; $num++; echo $num." "; } for($i=0; $i<10; $i++){ count1(); //11 1 1 1 1 1 1 1 1 1 } echo "<br/>"; for($i=0; $i<10; $i++){ count2(); //1 2 3 4 5 6 7 8 9 10 } echo "<br/>"; //全局变量在函数中运用,加global $a="php"; $b = "java"; function show(){ echo $a; // 无输出 global $b; echo $b; //定义global,输出java } show(); ?>
局部變數和全域變數的差異說明:
1. 局部變數在函數內部可以存取內部變量,輸出結果;在函數外部無法存取函數內部的變量,所以無法輸出結果;如果在函數外部需要呼叫該變數值,則必須透過return 指令將其值傳回至主程式區塊以作後續處理。 2. 在PHP中,由於函數可以視為單獨的程式碼片段,所以局部變數會覆蓋全域變數的能見度,因此在函數中無法直接呼叫全域變數。在函數中若要使用全域變量,就必須利用關鍵字定義目標變量,而這個全域變數的關鍵字為「 global 」, 使用關鍵字「global」你就可以把全域資料匯入到一個函數的局部範圍內,以告訴函數主體此變數為全域變數。 3. PHP中的變數作用範圍的另一個重要特性就是靜態變數(static 變數)。靜態變數僅在局部函數域中存在且只初始化一次,當程式執行離開此作用域時,其值不會消失,會使用上次執行的結果。上面的例子分別使用 static 和不用 static 變數的,朋友可以仔細比較一下。 【相關教學推薦】1. 《php.cn獨孤九賤(4)-php影片教學》
2. 3.以上是php函數中局部變數和全域變數的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!