php自定義函數及內部函數
阿新 • • 發佈:2018-11-03
定義函數 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自定義函數及內部函數