W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
作用:執(zhí)行 Api Hook
回調(diào)函數(shù)。
語法:?null?do_hooks(string?$api[,?mixed?$input])
參數(shù):
$api
待執(zhí)行的 API 名稱,使用點語法,如 user.add
$input
傳入的參數(shù)或者獲取模塊信息時得到的數(shù)組別名:
do_actions()
說明:
$input
參數(shù)是 Api Hook
回調(diào)函數(shù)的參數(shù)。在使用?add_hook()?函數(shù)為 API
添加回調(diào)函數(shù)時,回調(diào)函數(shù)可以選擇傳入 $input
參數(shù),也可以不傳入?yún)?shù),可以選擇返回值,也可以不返回。$input
參數(shù)是一個引用傳遞,默認值為 null
。但除了 null
外,其他返回值都會被應用到 $input
參數(shù)中,等待下一個回調(diào)函數(shù)接收它。
需要注意的是,如果在某一個 Api Hook
回調(diào)函數(shù)中,return error()
被調(diào)用,即設置了錯誤信息,那么序列中的其他回調(diào)函數(shù)將不會再被調(diào)用。ModPHP
不會也沒有能力(在顧及 Socket
服務時)自動報告錯誤消息給調(diào)用器,你需要手動這么做。
在模塊類方法中調(diào)用了 do_hooks()
函數(shù)后,你需要使用if(error()) return?[error()](http://modphp.hyurl.com/function-error);
來判斷在出現(xiàn)錯誤時將錯誤返回給調(diào)用器。
示例:
<?php
/** 自定義一個 Api 并綁定回調(diào)函數(shù) */
add_hook('text.change', function($text){ //此時傳入 $text 參數(shù)和不傳入是一樣的
$text = 'Hi, ModPHP';
return $text; //返回以應用更改
}, false);
$text = 'Hello, World!'; //這個 $text 和 add_hook() 中的 $text 不是一回事
do_hooks('test.change', $text); //執(zhí)行回調(diào)函數(shù)
echo $text; //將輸出 Hi, ModPHP
/** 錯誤控制 */
class something extents mod{
static function act($arg = array()){
do_hooks('mod.act', $arg); //可能會出現(xiàn)錯誤,錯誤信息存儲在 error() 中
if(error()) return error(); //如果 error() 返回值不為空(有錯誤),則將錯誤返回給調(diào)用器
/** 其他代碼 */
}
}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: