PHP之回呼函數類型傳遞方式

來源:互聯網
上載者:User
本文主要和大家分享PHP之回呼函數類型傳遞方式,我們這裡通過array_map()函數來進行測試,希望能協助到大家。

方式1、全域函數

function foo($val){return intval($val)+1;}$arr = array('a',2,'b',5,'c',7);//回呼函數傳遞方式$res = array_map('foo', $arr);/**輸出如下:array (size=6)  0 => int 1  1 => int 3  2 => int 1  3 => int 6  4 => int 1  5 => int 8*/

方式2、類公有函數

class Demo {public function foo($val){return intval($val)+1;}}$arr = array('a',2,'b',5,'c',7);//回呼函數傳遞方式$res = array_map(array(new Demo, 'foo'), $arr);

方式3、類私人函數

class Demo {private function foo($val){return intval($val)+1;}public function test(){$arr = array('a',2,'b',5,'c',7);        //回呼函數傳遞方式$res = array_map(array($this, 'foo'), $arr);return $res;}}$demo = new Demo;$result = $demo->test();

方式4、類公有靜態方法

class Demo {      static public function foo($val){          return intval($val)+1;      }  }    $arr = array('a',2,'b',5,'c',7);  //回呼函數傳遞方式  以下兩種方式都可以$res = array_map('Demo::foo', $arr); //$res = array_map(array('Demo', 'foo'), $arr);

方式5、類私人靜態方法

class Demo {static private function foo($val){return intval($val)+1;}static public function test(){$arr = array('a',2,'b',5,'c',7);        //回呼函數傳遞方式  這裡可以使用兩種傳遞方式$res = array_map(array('self', 'foo'), $arr);//$res = array_map('self::foo', $arr);//$res = array_map(array('Demo', 'foo'), $arr);//$res = array_map('Demo::foo', $arr);return $res;}}$result = Demo::test();

方式6、匿名函數

$foo = function($val){return intval($val)+1;};$arr = array('a',2,'b',5,'c',7);//回呼函數傳遞方式$res = array_map($foo, $arr);

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.