国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表

圖片精選

主站蜘蛛池模板: 南江县| 讷河市| 中宁县| 徐汇区| 梅州市| 灵璧县| 岳普湖县| 尼木县| 县级市| 四会市| 三亚市| 清远市| 马龙县| 黔东| 府谷县| 苏尼特右旗| 邳州市| 郓城县| 天镇县| 砚山县| 安国市| 满洲里市| 丰台区| 达拉特旗| 密山市| 赤水市| 固始县| 越西县| 通江县| 沐川县| 巴彦淖尔市| 宣恩县| 密山市| 松溪县| 连州市| 略阳县| 乌兰浩特市| 乌鲁木齐市| 五河县| 内黄县| 叶城县|