在 PHP 中使用函數作為回調,可以使用匿名函數或命名函數。匿名函數語法為:$callback = function ($argument) { return $result; }。命名函數擁有名稱,像常規函數一樣定義。常用的內建函數接受回呼作為參數,如:array_map()、array_filter()、usort()。在實戰案例中,可使用回呼函數定義自訂驗證規則並傳遞給驗證函數,如電子郵件驗證回呼:function validateEmail($email) { return filter_var($email, FILTER_VALIDATE_EMAIL); }。
如何在 PHP 中使用函數作為回呼
回呼函數是指在另一個函數中被呼叫的函數。在 PHP 中,你可以使用匿名函數(閉包)或命名函數作為回呼。
使用匿名函數作為回呼
匿名函數是未命名的函數,可以在需要時建立。若要建立匿名函數,請使用下列語法:
$callback = function ($argument) { return $result; };
例如,建立一個將數字加5 的回呼函數:
$add5 = function ($num) { return $num + 5; };
使用命名函數作為回呼
#命名函數是擁有名稱的函數,可以像常規函數一樣定義。若要使用命名函數作為回調,請為該函數指定名稱。
例如,建立一個將數字平方並添加10 的回調函數:
function squareAndAdd10($num) { return $num * $num + 10; }
呼叫使用回調的函數
有一些內建函數接受回調作為參數,例如:
array_map()
: 將回調套用到陣列中的每個元素array_filter()
:過濾陣列元素,根據回呼的結果傳回TRUE 或FALSEusort()
: 根據回呼中定義的排序條件對陣列進行排序例如,使用array_map()
將$add5
回呼套用到陣列$numbers
:
$numbers = [1, 2, 3, 4, 5]; $result = array_map($add5, $numbers);
此時,$result
將包含[6, 7, 8, 9, 10]
。
實戰案例
使用回呼函數的常見範例是新增自訂驗證規則。假設你有一個處理表單的函數,你想要驗證表單欄位的值。你可以使用回調來定義自訂驗證規則,並將該規則傳遞給驗證函數。
例如,建立一個回呼來驗證email 位址:
function validateEmail($email) { return filter_var($email, FILTER_VALIDATE_EMAIL); }
然後,你可以將此回呼傳遞給表單驗證函數:
$validator = new FormValidator(); $validator->addRule('email', 'validateEmail');
現在,FormValidator
將會使用validateEmail
回呼驗證email 位址。
以上是如何在 PHP 中使用函數作為回呼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!