成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? 詳解php 使用Callable Closure強制指定回調類型
全站頭部文字 我要出現在這里
詳解php 使用Callable Closure強制指定回調類型 808 2023-12-08   

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

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

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

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

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

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

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

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

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

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

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

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

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



主站蜘蛛池模板: 自制化妆豆豆本| 少妇av片在线观看| 孙菂| 周岁封酒| 母与子| 伸舌头接吻脱裤子| 我的一级兄弟 电影| the girl next door| 尼格| 战上海老电影战争片子| 北京 北京 汪峰歌曲| 混沌行走| 有为有不为思维导图| 男和男性猛交ⅹxxx双龙视频| cctv体育频道5| 日本十大歌姬排名| 黄色网址视频免费| 2025最火情侣头像| 艳妻互换电影| 职业探索怎么写| 美女网站视频免费黄| so xo minh ngoc| 韩国电影《真相迷途》演员表| 秋天不回来吉他谱扫弦| 女八路被鬼子抓了受刑| 蛇魔女大闹都市| 佳片有约| 陕09j01图集| 请假单| 上官于飞| 血色樱花 电视剧| 宝宝满月酒微信邀请函| 尹雪喜新建文件夹2| 世界赋予我的 二声部合唱谱| 美丽的草原我的家二胡独奏| 潜行在线观看| 柏欣彤广场舞| 女同性恋视频网站| 白宝山电视剧26集免费观看| 哥哥啊啊啊| 我爱我爹全集高清版免费观看|

!!!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103