<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] # 回調函數 ****** 回調函數就是在主進程執行當中,突然跳轉到預先設置好的函數中去執行的函數。 ```php 以下是來自知乎作者常溪玲的解說: 你到一個商店買東西,剛好你要的東西沒有貨,于是你在店員那里留下了電話,過了幾天店里有貨了, 店員就打了你的電話,然后你接到電話后就到店里去取了貨。在這個例子里,你的電話號碼就叫回調函數,你把電話留給店員就叫登記回調函數,店里后來有貨了叫做觸發了回調關聯的事件,店員給你打電話叫做調用回調函數,你到店里去取貨叫做響應回調事件。 ``` 以下是一個非常簡單的回調函數的例子: ```php <?php // 登記回調函數 function insert(int $i):bool { echo "插入數據{$i}\n"; // 模擬數據庫插入 // 響應回調事件 return true; } $arr = range(0, 1000); // 模擬生成1001條數據 function action(array $arr, callable $function) { foreach ($arr as $value) { if ($value % 10 == 0) { //當滿足條件時,去執行回調處理 // 觸發回調 call_user_func($function, $value); // 調用回調事件 } } } action($arr, 'insert'); ``` 在這個例子中,首先定義了一個插入數據的函數,定義了一個 1001 條數據的數組,然后調用了 action 函數,當遍歷數組滿足條件時,則執行設定好的回調函數進行插入數據。 <br /> ## 回調函數的幾種寫法 ### 函數字符串 ```php <?php function insert(int $i):bool { echo "插入數據{$i}\n"; // 模擬插入數據庫插入 return true; } $arr = range(0, 1000); // 模擬生成1001條數據 function action(array $arr, callable $function) { foreach ($arr as $value) { if ($value % 10 == 0) { // 當滿足條件是,去執行回調處理 call_user_func($function, $value); } } } action($arr, 'insert'); ``` <br /> ### 匿名函數 ```php <?php $arr = range(0, 1000); // 模擬生成1001條數據 function action(array $arr, callable $function) { foreach ($arr as $value) { if ($value % 10 == 0) { // 當滿足條件是,去執行回調處理 call_user_func($function, $value); } } } action($arr, function($i):bool { echo "插入數據{$i}\n"; // 模擬插入數據庫插入 return true; }); ``` <br /> ### 類靜態方法 ```php <?php class A { public static function insert(int $i):bool { echo "插入數據{$i}\n"; // 模擬插入數據庫插入 return true; } } $arr = range(0, 1000); // 模擬生成1001條數據 function action(array $arr, callable $function) { foreach ($arr as $value) { if ($value % 10 == 0) { // 當滿足條件是,去執行回調處理 call_user_func($function, $value); } } } action($arr, array('A', 'insert')); action($arr, 'A::insert'); ``` <br /> ### 類方法 ```php <?php class A { public function insert(int $i):bool { echo "插入數據{$i}\n"; // 模擬插入數據庫插入 return true; } } $arr = range(0, 1000); // 模擬生成1001條數據 function action(array $arr, callable $function) { foreach ($arr as $value) { if ($value % 10 == 0) { // 當滿足條件是,去執行回調處理 call_user_func($function, $value); } } } $a = new A(); action($arr, array($a, 'insert')); ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看