国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

詳解php 使用Callable Closure強制指定回調類型

2024-05-05 00:00:46
字體:
來源:轉載
供稿:網(wǎng)友

詳解php/43306.html">php 使用Callable Closure強制指定回調類型

如果一個方法需要接受一個回調方法作為參數(shù),我們可以這樣寫

<?php function testCallBack($callback){   call_user_func($callback); }  function callback(){   echo 'do sth callback'; }  testCallBack('callback'); ?> 

但我們不能確定回調方法是否可以調用,因此需要做很多額外的工作去檢查這個回調方法是否可以調用。

有什么更好的方法可以判斷回調方法是否可調用?

我們可以使用callable來強制指定參數(shù)為回調類型,這樣可以保證回調方法必須是可以調用的。

<?php function testCallBack($callback){   call_user_func($callback); }  function callback(){   echo 'do sth callback'; }  testCallBack('abc'); ?> 

執(zhí)行后,提示警告:Warning: call_user_func() expects parameter 1 to be a valid callback, function ‘abc' not found or invalid function name 程序能執(zhí)行到dosth內部的處理,這樣就需要做很多額外的工作去檢查這個回調方法是否可以調用。

<?php function testCallBack(callable $callback){   call_user_func($callback); }  function callback(){   echo 'do sth callback'; }  testCallBack('abc'); ?> 

執(zhí)行后,提示錯誤:TypeError: Argument 1 passed to testCallBack() must be callable 程序并不能執(zhí)行到dosth內部的處理,從參數(shù)類型處就已經做了檢查處理,起到保護作用。

<?php $f = function () {   return 100; };  function testClosure(Closure $callback) {   return $callback(); }  $a = testClosure($f); print_r($a); //100 exit; 

因此,如果方法的參數(shù)是回調方法,都應加上callable強制指定為回調類型,這樣可以減少調用的錯誤和提高程序的質量。

如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關教程知識閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 和硕县| 万州区| 甘德县| 德清县| 铜山县| 绥棱县| 梧州市| 离岛区| 洞头县| 永福县| 德阳市| 海原县| 怀仁县| 双城市| 花莲市| 西宁市| 扶风县| 岳阳县| 乡宁县| 平罗县| 竹山县| 张家口市| 沂水县| 青海省| 渝北区| 富宁县| 敦化市| 团风县| 康马县| 沙坪坝区| 灯塔市| 尤溪县| 汉源县| 南平市| 墨江| 南岸区| 独山县| 卢龙县| 晋江市| 定远县| 平舆县|