這篇文章給大家分享的是有關PHP中Callable如何強制指定回調類型的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
如果一個方法需要接受一個回調方法作為參數,我們可以這樣寫
<?php
function dosth($callback){
call_user_func($callback);
}
function callback(){
echo 'do sth callback';
}
dosth('callback');
?>輸出:
do sth callback
但我們不能確定回調方法是否可以調用,因此需要做很多額外的工作去檢查這個回調方法是否可以調用。
有什么更好的方法可以判斷回調方法是否可調用?
我們可以使用callable來強制指定參數為回調類型,這樣可以保證回調方法必須是可以調用的。
例如,回調方法為一個不存在的方法
<?php
function dosth(callable $callback){
call_user_func($callback);
}
dosth('abc');
?>執行后,提示錯誤:TypeError: Argument 1 passed to dosth() must be callable
程序并不能執行到dosth內部的處理,從參數類型處就已經做了檢查處理,起到保護作用。
而如果把callable去掉
<?php
function dosth($callback){
call_user_func($callback);
}
dosth('abc');
?>執行后,提示警告:Warning: call_user_func() expects parameter 1 to be a valid callback, function ‘abc' not found or invalid function name
程序能執行到dosth內部的處理,這樣就需要做很多額外的工作去檢查這個回調方法是否可以調用。
因此,如果方法的參數是回調方法,都應加上callable強制指定為回調類型,這樣可以減少調用的錯誤和提高程序的質量。
感謝各位的閱讀!關于“PHP中Callable如何強制指定回調類型”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。