W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
作用:添加 Api Hook
回調函數。
語法:?null?add_hook(mixed?$api,?callable?$callback[,?boolean?$apiIsSet])
參數:
$api
設置 API 名稱,使用點語法,如 user.add,也可以設置為一個索引數組同時為多個 API 添加同一個回調函數。$callback
回調函數,可以是一個函數名,也可以是一個匿名函數。$apiIsSet
該 API 是否為一個集合,默認為 true,即同一個 API 中存儲多個回調函數(數組),如果設置為 false,則該 API 僅存儲 $callback 一個回調函數
別名:
add_action()
說明:
$callback
?回掉函數支持最多一個參數,這個參數同時也是?do_hooks()?函數的第二個參數,在函數中可以對這個參數就行判斷,修改等,最后將其返回或不反回(返回 null),甚至返回其他內容(但要求類型和這個參數相同)。
如果返回值既不是 null 也不是return error() ,則返回值會應用到?do_hooks() 函數的第二個參數上,來實現更改請求參數。
如果設置了 $apiIsSet 參數為 false,那么 return error() 也會被應用到 do_hooks() 函數的第二個參數上。
在回調函數中,可以通過判斷請求參數,來決定接下來的行為,比如當請求參數不存在或者不匹配時,可以使用return error() 來返回錯誤信息。
影響模塊操作中的回調函數,其參數永遠是提交的參數構成的數組或者獲取模塊記錄而返回的數組,參見《掛鉤概述》。
示例:
<?php
add_hook('user.add', function($user){
$user['user_avatar'] = template_url('avatar.png'); //為用戶設置一個默認頭像
return $user; //將 $user 返回,必需,不返回不會應用修改
});
/** 或者為 Api 設置一個名字 */
add_action('user.add.auto_avatar', function($user){
/** 代碼 */
}, false); //此時需要將第三個參數設置為 fasle
/** 或者使用一個函數名做為回調函數 */
add_action('user.add', 'auto_avatar'); //此時不能將第三個參數設置為 false,因為 user.add 是一個系統(tǒng)預定的集合
function auto_avatar($user){
/** 代碼 */
}
/** 使用 return error() 返回錯誤 */
add_action('user.update.check_login', function(){
if(!is_login()) return error('用戶未登錄,不允許操作。');
}, false);
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯系方式:
更多建議: