10 函數、作用域

函數的一些問題

//穩健進行函數定義的方法,使用function_exists()
if(function_exists("f1") == false){
    function f1(){}
}

php非常多系統函數,有各種各樣的作用,取查手冊就可以了

參數

定義一個沒有形參的函數,其實可以接受任意個數個參數的,并且這些實際參數都會放進一個數組中,可以用 func_get_args() 來獲得

1.func_get_args()
2.func_num_args() //獲取實參的數量
3.func_get_args($i) //獲取第$i個實參,從0開始計數


返回值

return 語句來返回值。注意的是,return后無論跟不跟數據,都會終止函數的運行。

可變函數

和可變變量類似,函數的名字是一個變量

function f1(){
    ....
}
$v1 = "f1";
$v1();    //可以用變量名來調用函數啦


匿名函數

嘛,就是沒名字的函數,有兩個作用:

1.賦值給一個變量,然后可以像其他函數一樣用變量名進行調用
2.作為另一個函數的實際參數進行使用,這樣就可以在一個函數內,調用另一個函數了?


作用域

  • 局部作用域:函數內部范圍
  • 超全局作用域:所有代碼中都能用。只有系統定義的幾個而已。$_GET,$_POST,$_REQUEST,$_SERVER,$_COOKIE,$SESSION,$_FILES,$GLOBALS 等等
  • 全局作用域:函數外部

一般全局不能訪問局部,局部不能訪問全局。

1.全局訪問局部

在函數內部將變量定義為靜態變量

static $v1 = 12;
//該語句只會執行一次,會令到變量$v1不會被銷毀
//可見,靜態變量可以用來統計一個函數被調用了多少次
2.局部訪問全局(php真搞事情。。。局部居然不能直接訪問全局?叫啥全局。。。)
//方法1:
//函數內部使用關鍵字聲明全局變量同名變量
global $v1, $v2;

//方法2:
$GLOBALS['v1']


?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容