摘要:匿名函數在中,匿名函數,也叫閉包函數,是指允許臨時創建一個沒有指定名稱的函數。常用于回調函數中的參數閉包函數也可以作為變量的值來使用閉包可以從父作用域中繼承變量。
函數定義
有效的函數名以字母或下劃線打頭,后面跟字母,數字或下劃線;
函數名可以不區分大小(實際上,PHP 的函數名、方法名、類名都可以不區分大小寫);
函數無需在調用之前被定義,除非一個函數是有條件才被定義時;
PHP 不支持函數重載,也不可能取消定義或者重定義已聲明的函數。
函數的參數1.值傳遞
在函數內部改變了參數的值,并不會影響到在函數外部該參數的值:
2.引用傳遞
保持參數的值在函數內外部一致。引用傳遞,可以在函數定義中該參數的前面加上符號 & :
3.可變數量的參數
PHP 支持可變數量的參數。定義函數時列出的參數實際上只是最少的參數;在調用時是允許多傳參數的,只是多余的參數會被忽略掉:
function add($a, $b) { return $a + $b; } echo add(1,2,5); # 3在 PHP 5.5 及更早版本中,如果需要處理不確定數量的參數,可以使用以下函數進行處理:
func_num_args() — 返回傳遞給函數的參數個數
func_get_arg() — 返回指定的參數
func_get_args() — 以數組的形式返回參數列表"; break; case 1: echo "只有1個參數。它是:" . func_get_arg(0) . "。
"; break; case 2: echo "有2個參數。它們是:" . func_get_arg(0) . "," . func_get_arg(1) . "。
"; break; default: echo "超過2個參數。它們是:"; print_r($argv); break; } } func(); # 沒有參數。 func(1); # 只有1個參數。它是:1。 func(1,2); # 有2個參數。它們是:1,2。 func(1,2,3,4,5); # 超過2個參數。它們是:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )在 PHP 5.6 及以上的版本中,由 ... 語法實現可變數量的參數列表:
function sum(...$numbers) { $acc = 0; foreach ($numbers as $n) { $acc += $n; } return $acc; } echo sum(1, 2, 3, 4); # 10可變函數PHP 支持可變函數的概念 —— 如果一個變量名后有圓括號,PHP 將尋找與變量的值同名的函數,并且嘗試執行它:
注:可變函數不支持 PHP 中的語言結構,如 echo ,print 等。匿名函數在 PHP 中,匿名函數,也叫閉包函數,是指允許臨時創建一個沒有指定名稱的函數。常用于回調函數中的參數:
2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 )閉包函數也可以作為變量的值來使用:
$greet = function($name) { printf("Hello %s ", $name); }; $greet("World"); # Hello World閉包可以從父作用域中繼承變量。 任何此類變量都應該用 use 語言結構傳遞進去:
如果需要延遲綁定 use 里面的變量,需要使用引用,否則在定義的時候就會做一份拷貝放到 use 中:
函數動態調用在 PHP 中,除了直接調用函數外,還可以通過 call_user_func() 或 call_user_func_array() 函數間接調用函數:
"; } call_user_func("named_func", "PARAM1", "PARAM2"); call_user_func_array("named_func", array("PARAM1", "PARAM2"));
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/28532.html
摘要:小駝峰法大駝峰法匈牙利命名法變量名屬性類型對象描述。是一種弱類型語言,變量在使用之前并不需要聲明類型,且同一變量可以保存多種不同類型的數據。另外,在函數內部創建的靜態變量是無法在函數外部使用的。 變量標識符 標識符即是變量的名稱,PHP 中關于變量的標識符有以下規則: 由任意字母、數字、下劃線組成,但不能以數字開頭 嚴格區分大小寫 為了科學規范標識符,主要有以下幾種流行的命名方式:...
摘要:因此,當需要操作字符集的字符串時候,請務必安裝擴展,并使用相應的函數代替原生的字符串函數中國擴展大部分的函數都需要基于一個編碼內部編碼來處理,請務必統一使用編碼,這個大部分可以在中配置。 創建 PHP 支持 4 種方式來創建一個字符串:單引號、雙引號、heredoc 語法結構和 nowdoc 語法結構。 1. 單引號 在單引號字符串中,變量和特殊字符將不會被轉義替換,除了反斜杠和單引號...
摘要:概述我們知道,在編程語言中,數組的使用頻率是很高的,幾乎每個腳本都會使用到。循環缺點遍歷完成之后,不能對數組進行第二次遍歷數組內部指針指向了最后一個元素。 概述 我們知道,在 PHP 編程語言中,數組的使用頻率是很高的,幾乎每個腳本都會使用到。 PHP 自帶了大量的、優秀的操作數組的函數以供我們使用,本文就對這些數組函數的使用做一些分類和總結,方便大家以后查閱。 創建 1. range...
摘要:入門,第一個這是一門很新的語言,年前后正式公布,算起來是比較年輕的編程語言了,更重要的是它是面向程序員的函數式編程語言,它的代碼運行在之上。它通過編輯類工具,帶來了先進的編輯體驗,增強了語言服務。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺已經到來了,總結過去的 2017,相信小伙們一定有很多收獲...
摘要:入門,第一個這是一門很新的語言,年前后正式公布,算起來是比較年輕的編程語言了,更重要的是它是面向程序員的函數式編程語言,它的代碼運行在之上。它通過編輯類工具,帶來了先進的編輯體驗,增強了語言服務。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺已經到來了,總結過去的 2017,相信小伙們一定有很多收獲...
閱讀 1824·2021-09-28 09:46
閱讀 3143·2019-08-30 14:22
閱讀 1878·2019-08-26 13:36
閱讀 3343·2019-08-26 11:32
閱讀 2081·2019-08-23 16:56
閱讀 1151·2019-08-23 16:09
閱讀 1304·2019-08-23 12:55
閱讀 2148·2019-08-23 11:44