- function &func(){
- return "";
- }
複製代碼2.在調用時,在函數前增加引用符號。
- $return = &func();
複製代碼PHP的範圍只有兩種1, 函數外,全域範圍。2, 函數內,局部範圍。 法則:範圍不重疊。(全域不能訪問局部,局部不能訪問全域)但是js是可重疊的。 特殊的:預定義變數(9大超全域陣列變數)--注意是陣列變數。超全域:超級全域:既可以在全域使用,也可以在局部使用。所有的範圍都生效。
- $_GET['v1'] = "123";
- echo $_GET['v1']
-
複製代碼$GLOBALS 超級全域變數,是專門儲存超全域變數的,注意沒有底線。 修改全域變數,會影響GLOBALS內元素的值; 原因:使用的一個資料空間。相當於:
- $GLOBALS[‘v8’] = &$v8;
複製代碼2. create_function -- 建立函數的另一方式
- $func = create_function('$p',“echo $p);
複製代碼var_dump($func); 返回一個函數名。 次函數建立出來的函數名 為lambda風格。而且在函數名前有一個 不可見字元。Ascii為0的不可見字元。也可以調用。 $result = ”\x0“."lamba8"(20); 注意要知道函數名才可調用。 最常用的地方出現在回呼函數內。因此 create_function所建立的函數,與普通函沒有區別(存在函數的三個部分); 但是此函數不可以在定以前 調用,因此 只用執行 create_function才能得到該函數。最常用的地方:在 callback參數上,參數create_function相當於一個回調結構入參。 匿名函數:匿名函數 建立的函數是沒有名的, 而是一個 對象:與create_function的區別: 匿名函數究竟是什嗎?1, 將匿名函數可以當值來看待(php中是物件類型的)2, Php是通過 類 closure 類來實現匿名函數功能的。每一個匿名函數都是Closure類一個對象。Closure單詞的意思是閉包。因此有時php也將 匿名函數稱之為 閉包函數。3, 為什麼一個對象可以當函數來調用?(oop) 可以使用 外層範圍的變數的文法:注意:外層與全域的區別。外層可能是全域,也可能是局部。看當前匿名函數是定義的位置。 Use文法預設是值傳遞,可以引用傳遞.Callback1, 函數名2, Create_function3, Function 匿名函數 |