1. 程式人生 > >php自定義函數及內部函數

php自定義函數及內部函數

定義函數 turn mon 數組 函數 變量的作用域 訪問 記錄 只有一個

1、變量的作用域

變量的作用域也稱為變量的範圍,變量的範圍即它定義的上下文背景(也是它的生效範圍)。大部分php變量只有一個單獨的範圍。這個單獨的範圍跨度同樣包含了include和require引入的文件。

(1)global關鍵字

  全局變量可以在程序的任何地方訪問。但是,要想修改全局變量 ,就必須要在修改該變量的函數中將其顯式的聲明為全局變量。聲明全局變量時要在變量的前面加上global關鍵字,如果將該關鍵字放在一個已有的變量面前,就是告訴php要使用同名的全局變量。

例:

$month = 10;
function getMonth(){
    global $month;
    
$month--; return $month; } getMonth(); echo $month;//輸出結果是9

調用該函數時,在函數內部將函數內部的全局變量進行了全局話,這樣這樣在函數內部操作,其實就是對函數外部的month進行的操作,函數調用一次,該變量就處理一次。若函數內部沒有申明global,則無論函數調用多少次,month的值均不變,還是10。

除了使用global之外,還可以使用$GLOBALS[]數組。

$month = 10;
function getMonth(){
    $GLOBALS["month"]--;

}
getMonth();
echo $GLOBALS
["month"];//輸出結果是9

(2)靜態變量:靜態變量僅在局部函數域中存在,但當程序執行離開此作用域時,其值並不會消失。

  static關鍵字:

  ① 僅初始化一次

  ② 初始化時需要賦值

  ③ 每次執行函數,該值會保留

  ④ static修飾的變量是局部的,僅在函數內部有效

  ⑤ 可以記錄函數的調用次數,從而可以在某些條件下終止遞歸

  例:

$count = 5;
function get_count(){
    static $count;  //此處進行初始化,若沒有指定則初始化為null,並且僅初始化一次,以後每次調用時,該步不會再執行
    return $count
++; } echo $count; //輸出結果5 echo "</br>"; ++$count; //count=6 echo get_count();//在函數內部,$count=null,$count++ => $count=1,輸出空(啥都不輸出) echo get_count();//在函數內部,$count=1,$count++ => $count=2,輸出1

php自定義函數及內部函數