W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
作用:設(shè)置出錯(cuò)信息并返回失敗的操作結(jié)果。
語(yǔ)法:?array?error([mixed?$data][,?array?$extra])
參數(shù):
$data
操作失敗的提示信息或結(jié)果,也可設(shè)置未 null
或false
用以清除錯(cuò)誤信息。$extra
??額外附加的信息
返回值:
如果設(shè)置了 $data
參數(shù),則返回結(jié)果數(shù)組并至少包含兩個(gè)鍵值對(duì) [success]=>ture
, [data]=>$data
。
如果沒(méi)有提供參數(shù),則返回已設(shè)置的錯(cuò)誤信息。
說(shuō)明:
該函數(shù)既可以用在類方法中,也可以用在 Api Hook
回調(diào)函數(shù)中,它比 success()
函數(shù)具有更多靈活性和使用場(chǎng)景。
由于 ModPHP 程序需要同時(shí)兼顧 HTTP 和 Socket 服務(wù)器,所以模塊類方法調(diào)用過(guò)程中不能出現(xiàn)使腳本停止運(yùn)行的情況,所以使用 exit()
輸出錯(cuò)誤信息并結(jié)束程序是不可取的。
為此,ModPHP 設(shè)計(jì)了一種預(yù)設(shè)置錯(cuò)誤信息的方式。例如,在 Api Hook 回調(diào)函數(shù)中,如果某一個(gè)函數(shù)觸發(fā)了 error()
函數(shù)并設(shè)置錯(cuò)誤信息,那么在函數(shù)序列中的其他回調(diào)函數(shù)將不會(huì)再被觸發(fā)。而 error()
函數(shù)也將一直保持被設(shè)置的錯(cuò)誤信息。如果你自己定義的函數(shù)或類方法需要實(shí)現(xiàn)這樣的效果,也應(yīng)該使用這種方式跳過(guò)執(zhí)行。
在模塊類方法中,在調(diào)用?do_hooks()?函數(shù)或者其他可能設(shè)置錯(cuò)誤信息的程序之后,你必須使用if(error()) return error();
的方式,判斷在存在錯(cuò)誤的情況下,將錯(cuò)誤返回給調(diào)用器而不再執(zhí)行后面的代碼。
某些時(shí)候,你可能需要使用?error(null);
?來(lái)將已經(jīng)設(shè)置的錯(cuò)誤信息清除,以防止它阻礙程序的繼續(xù)運(yùn)行。例如,當(dāng)你在程序中使用了形如{module}::get()
方法來(lái)獲取數(shù)據(jù)時(shí),如果數(shù)據(jù)不存在,那么error()
將存儲(chǔ)著錯(cuò)誤信息。如果你后面還需要運(yùn)行其他的嗎,則必須要先使用 error(null)
來(lái)清除錯(cuò)誤信息。
示例:
<?php
add_action('post.like', function($arg){ //為類動(dòng)態(tài)添加一個(gè) LIKE 方法
do_hooks('post.like', $arg); //調(diào)用 Api Hook
if(error()) return error(); //如果 Api Hook 回調(diào)函數(shù)報(bào)告了錯(cuò)誤,則將錯(cuò)誤返回給調(diào)用器
if( 條件 ){
/** 需要執(zhí)行的代碼 */
return success('頂贊成功。');
}else{
return error('點(diǎn)贊失敗。');
}
});
/** 或者在類中:*/
final class post extends mod{
static function like($arg){
do_hooks('post.like', $arg);
if(error()) return error();
if( 條件 ){
/** 需要執(zhí)行的代碼 */
return success('頂贊成功。');
}else{
return error('點(diǎn)贊失敗。');
}
}
}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: