<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 協程:實現 Go 語言風格的 defer [TOC] 由于`Go`語言沒有提供析構方法,而`PHP`對象有析構函數,使用`__destruct`就可以實現`Go`的風格`defer`。 ## 實現代碼 ~~~ class DeferTask { private $tasks; function add(callable $fn) { $this->tasks[] = $fn; } function __destruct() { //反轉 $tasks = array_reverse($this->tasks); foreach($tasks as $fn) { $fn(); } } } ~~~ * 基于`PHP`對象析構方法實現的`defer`更靈活,如果希望改變執行的時機,甚至可以將`DeferTask`對象賦值給其他生命周期更長的變量,`defer`任務的執行可以延長生命周期 * 默認情況下與`Go`的`defer`完全一致,在函數退出時自動執行 ## 使用實例 ~~~ function test() { $o = new DeferTask(); //邏輯代碼 $o->add(function () { //code 1 }); $o->add(function () { //code 2 }); //函數結束時,對象自動析構,defer 任務自動執行 return $retval; } ~~~
                  <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>

                              哎呀哎呀视频在线观看