
在workerman中會經常使用,我們先寫一個回呼函式,當某個行為被觸發后使用該函式處理相關邏輯,
在PHP中最常用的幾種回呼寫法如下
匿名函式做為回呼
匿名函式(Anonymous functions),也叫閉包函式(closures),允許臨時創建一個沒有指定名稱的函式,最經常用作回呼函式(callback)引數的值,當然,也有其它應用的情況,
匿名函式的回呼經常將其賦給一個變數(或一個物件的屬性)

最終結果會輸出11,
這中間有一個use的用法,現在很多框架都在使用,包括我自己發布的 yii2-wx 在處理微信付款結果通知的時候也有用到,
簡單點說就是當我們設定了匿名函式的時候,可以從父作用域繼承變數,比如如下代碼

則結果是21,沒錯,匿名函式體可以使用繼承過來的變數 $number,
一點要注意的是,這種繼承是在函式被定義的時候就確定了,比如如下代碼

結果還是21,后面重新的賦值并沒有起到作用,
那我們如何解決這個問題那?
@nai8@
只需要將繼承的變數設定為參考即可,如下

搞定了,22出現了,1 + 10 + 11;
在workerman中一般匿名函式作為回呼叫法如下

普通函式作為回呼
這種用法并沒有什么可以多說的,不像匿名函式那么多細節,直接看代碼,

在這里沒有use用法,并且函式定義和賦值給變數順序誰上誰下都可以,在語法上這只是對add的一次變數賦值,之所以能作為回呼是我們使用了add() 導致的,在workerman中一般用法如下

類方法作為回呼
學習了前面的知識,類的方法作為回呼就好學了,一句話:將一個類的公共方法作為回呼函式;
直接上在workerman中的用法

我們將MyClass的onMsg方法作為回呼賦值給$worker->onMessage,
類靜態方法做為回呼
這個最簡單了,看代碼,

我們將MyClass的靜態方法onMsg方法作為回呼賦值給worker->onMessage,因為是靜態方法,在onMsg內不能用this哈,
以上就是學習workerman之前需要知道的幾種php回呼寫法的詳細內容
有需要學習交流的友人請加入Swoole交流群的咱們一起,有問題一起交流,一起進步!前提是你是學技術的,感謝閱讀!
點此加入該群?jq.qq.com
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/102139.html
標籤:PHP
上一篇:golang和swoole區別
