麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > PHP > 正文

php中閉包函數(shù)的用法實例

2024-09-04 11:48:41
字體:
供稿:網(wǎng)友

閉包函數(shù)是在PHP5.3版本才引入的了,閉包函數(shù)也就是匿名函數(shù)函數(shù)了,這個與js中的匿名函數(shù)很像了,下面我們來看看php匿名函數(shù)吧.

php閉包函數(shù)比如你現(xiàn)在就可以這樣使用:

$closure = function($param) { echo $param; };

感覺和js是不是一樣的用法了,一些閉包函數(shù)實例,代碼如下:

  1. function test(){ 
  2. $test=''
  3. $test=function ($str){ 
  4. echo 'test'
  5. return $str
  6. }; 
  7. timeout('Y-m-d H:i:s',function ($time){ 
  8. //$this->date=time(); 
  9. return $time-24*60*60; 
  10. }); 
  11.  
  12. var_dump($test(‘hello word!’)); 
  13.  
  14. function timeout($format,$time){ 
  15. echo date($format,$time(time())); 
  16. test(); 

上例輸出:2013-11-19 16:24:56teststring(11) “hello word!”

這樣子參數(shù)便可以用函數(shù)了,條件是,php3.0以后php 4.0以后閉包函數(shù)支持$this用法,閉包函數(shù)通常被用在preg_match等有callback的函數(shù),代碼如下:

  1. <?php 
  2. class A { 
  3. private static $sfoo = 1; 
  4. private $ifoo = 2; 
  5. $cl1 = static function() { 
  6. return A::$sfoo
  7. }; 
  8. $cl2 = function() { 
  9. return $this->ifoo; 
  10. }; 
  11.  
  12. $bcl1 = Closure::bind($cl1, null, ‘A’); 
  13. $bcl2 = Closure::bind($cl2new A(), ‘A’); 
  14. echo $bcl1(), “n”; 
  15. echo $bcl2(), “n”; 
  16. ?> 
  17. //輸出 

bind將類可以在閉包函數(shù)中使用,代碼如下:

  1. <?php 
  2. class A1 { 
  3. function __construct($val) { 
  4. $this->val = $val; 
  5. function getClosure() { 
  6. //returns closure bound to this object and scope 
  7. return function() { return $this->val; }; 
  8. }//開源代碼Vevb.com 
  9.  
  10. $ob1 = new A1(1); 
  11. $ob2 = new A1(2); 
  12.  
  13. $cl = $ob1->getClosure(); 
  14. echo $cl(), “n”; 
  15. $cl = $cl->bindTo($ob2); 
  16. echo $cl(), “n”; 
  17. ?> 
  18. //以上例程的輸出類似于: 

bindto在類里可以再次綁定類,代碼如下:

  1. $fn = function(){ 
  2. return ++$this->foo; // increase the value 
  3. }; 
  4.  
  5. class Bar{ 
  6. private $foo = 1; // initial value 
  7.  
  8. $bar = new Bar(); 
  9.  
  10. $fn1 = $fn->bindTo($bar, ‘Bar’); // specify class name 
  11. $fn2 = $fn->bindTo($bar$bar); // or object 
  12. $fn3 = $fn2->bindTo($bar); // or object 
  13.  
  14. echo $fn1(); // 2 
  15. echo $fn2(); // 3 
  16. echo $fn3(); // 4 

在類之外需要綁定類才能用,綁定可以是類名,也可以是對象,綁定過之后可以再次綁定不需要提拱類名或?qū)ο?

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 成人短视频在线播放 | 欧美黄色免费视频 | 三级国产三级在线 | 久久国产秒| 黄色免费电影网址 | 成人情欲视频在线看免费 | 日韩精品羞羞答答 | 99在线啪 | 国产精品久久久久久久娇妻 | 羞羞草视频 | 中文区永久区 | 污版视频在线观看 | 毛片视频播放 | 蜜桃网站在线观看 | 国产精品成人免费一区久久羞羞 | 久久国产精品二国产精品中国洋人 | 色淫影院 | 国产精品久久久久国产精品三级 | v片在线看 | 久久久在线免费观看 | 精品一区二区三区中文字幕老牛 | 久久国产一级片 | 中文国产在线视频 | 少妇的肉体2无删减版 | 国产日本在线 | 成人国产精品一区 | 久草在线手机视频 | 欧美精品色精品一区二区三区 | 久久经典国产视频 | 97久久人人超碰caoprom | 99ri精品| 日本欧美在线播放 | 久草在线小说 | 国产精品久久久久久模特 | 成人黄色短视频在线观看 | 久久久久久久久久综合 | 男人久久天堂 | 午夜精品福利视频 | 国产艳妇av视国产精选av一区 | 亚欧美一区二区 | 毛片免费一区二区三区 |