<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國際加速解決方案。 廣告
                ## Callback / Callable 類型(復合) 自 PHP 5.4 起可用 [callable](http://php.net/manual/zh/language.types.callable.php) 類型指定回調類型 callback。本文檔基于同樣理由使用 [callback](http://php.net/manual/zh/language.pseudo-types.php#language.types.callback) 類型信息。 一些函數如 [call\_user\_func()](http://php.net/manual/zh/function.call-user-func.php) 或 [usort()](http://php.net/manual/zh/function.usort.php) 可以接受用戶自定義的回調函數作為參數。回調函數不止可以是簡單函數,還可以是對象的方法,包括靜態類方法。 ### 傳遞 PHP是將函數以string形式傳遞的。可以使用任何內置或用戶自定義函數,但除了語言結構例如:[array()](http://php.net/manual/zh/function.array.php),[echo](http://php.net/manual/zh/function.echo.php),[empty()](http://php.net/manual/zh/function.empty.php),[eval()](http://php.net/manual/zh/function.eval.php),[exit()](http://php.net/manual/zh/function.exit.php),[isset()](http://php.net/manual/zh/function.isset.php),[list()](http://php.net/manual/zh/function.list.php),[print](http://php.net/manual/zh/function.print.php) 或 [unset()](http://php.net/manual/zh/function.unset.php)。 一個已實例化的 [object](http://php.net/manual/zh/language.types.object.php) 的方法被作為 [array](http://php.net/manual/zh/language.types.array.php) 傳遞,下標 0 包含該 [object](http://php.net/manual/zh/language.types.object.php),下標 1 包含方法名。 在同一個類里可以訪問 protected 和 private 方法。 靜態類方法也可不經實例化該類的對象而傳遞,只要在下標 0 中包含類名而不是對象。自 PHP 5.2.3 起,也可以傳遞 *'ClassName::methodName'*。 除了普通的用戶自定義函數外,也可傳遞 [匿名函數](http://php.net/manual/zh/functions.anonymous.php) 給回調參數。 **Example #1 回調函數示例** ``` <?php? //?An?example?callback?function function?my_callback_function()?{ ????echo?'hello?world!'; } //?An?example?callback?method class?MyClass?{ ????static?function?myCallbackMethod()?{ ????????echo?'Hello?World!'; ????} } //?Type?1:?Simple?callback call_user_func('my_callback_function');? //?Type?2:?Static?class?method?call call_user_func(array('MyClass',?'myCallbackMethod'));? //?Type?3:?Object?method?call $obj?=?new?MyClass(); call_user_func(array($obj,?'myCallbackMethod')); //?Type?4:?Static?class?method?call?(As?of?PHP?5.2.3) call_user_func('MyClass::myCallbackMethod'); //?Type?5:?Relative?static?class?method?call?(As?of?PHP?5.3.0) class?A?{ ????public?static?function?who()?{ ????????echo?"A\n"; ????} } class?B?extends?A?{ ????public?static?function?who()?{ ????????echo?"B\n"; ????} } call_user_func(array('B',?'parent::who'));?//?A //?Type?6:?Objects?implementing?__invoke?can?be?used?as?callables?(since?PHP?5.3) class?C?{ ????public?function?__invoke($name)?{ ????????echo?'Hello?',?$name,?"\n"; ????} } $c?=?new?C(); call_user_func($c,?'PHP!'); ?> ``` **Example #2 使用 Closure 的示例** ``` <?php //?Our?closure $double?=?function($a)?{ ????return?$a?*?2; }; //?This?is?our?range?of?numbers $numbers?=?range(1,?5); //?Use?the?closure?as?a?callback?here?to? //?double?the?size?of?each?element?in?our? //?range $new_numbers?=?array_map($double,?$numbers); print?implode('?',?$new_numbers); ?> ```
                  <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>

                              哎呀哎呀视频在线观看