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

首頁 > 語言 > PHP > 正文

詳解PHP匿名函數(shù)與注意事項(xiàng)

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

php5.3不但引進(jìn)了匿名函數(shù)還有更多更好多新的特性了,下面我們一起來了解一下PHP匿名函數(shù)與注意事項(xiàng),具體內(nèi)容如下

PHP5.2 以前:autoload, PDO 和 MySQLi, 類型約束

PHP5.2:JSON 支持

PHP5.3:棄用的功能,匿名函數(shù),新增魔術(shù)方法,命名空間,后期靜態(tài)綁定,Heredoc 和 Nowdoc, const, 三元運(yùn)算符,Phar

PHP5.4:Short Open Tag, 數(shù)組簡寫形式,Traits, 內(nèi)置 Web 服務(wù)器,細(xì)節(jié)修改

PHP5.5:yield, list() 用于 foreach, 細(xì)節(jié)修改

PHP5.6:常量增強(qiáng),可變函數(shù)參數(shù),命名空間增強(qiáng)

現(xiàn)在基本上都使用PHP5.3以后的版本,但是感覺普遍一個(gè)現(xiàn)象就是很多新特性,過了這么長時(shí)間,還沒有完全普及,在項(xiàng)目中很少用到。

看看PHP匿名函數(shù):

  1. 'test' => function(){ 
  2.  
  3.   return 'test' 
  4.  
  5. }, 

PHP匿名函數(shù)的定義很簡單,就是給一個(gè)變量賦值,只不過這個(gè)值是個(gè)function。

以上是使用Yii框架配置components文件,加了一個(gè)test的配置。

什么是PHP匿名函數(shù)?

看官方解釋:

匿名函數(shù)(Anonymous functions),也叫閉包函數(shù)(closures),允許 臨時(shí)創(chuàng)建一個(gè)沒有指定名稱的函數(shù)。最經(jīng)常用作回調(diào)函數(shù)(callback)參數(shù)的值。當(dāng)然,也有其它應(yīng)用的情況。

匿名函數(shù)示例:

  1. <?php 
  2.  
  3. echo preg_replace_callback('~-([a-z])~'function ($match) { 
  4.  
  5.  return strtoupper($match[1]); 
  6.  
  7. }, 'hello-world'); 
  8.  
  9. // 輸出 helloWorld 
  10.  
  11. ?> 

閉包函數(shù)也可以作為變量的值來使用。PHP 會(huì)自動(dòng)把此種表達(dá)式轉(zhuǎn)換成內(nèi)置類 Closure 的對象實(shí)例。把一個(gè) closure 對象賦值給一個(gè)變量的方式與普通變量賦值的語法是一樣的,最后也要加上分號(hào):

匿名函數(shù)變量賦值示例:

  1. <?php 
  2.  
  3. $greet = function($name
  4.  
  5. //Vevb.com 
  6.  printf("Hello %s/r/n"$name); 
  7.  
  8. }; 
  9.  
  10. $greet('World'); 
  11.  
  12. $greet('PHP'); 
  13.  
  14. ?> 

閉包可以從父作用域中繼承變量。 任何此類變量都應(yīng)該用 use 語言結(jié)構(gòu)傳遞進(jìn)去。

從父作用域繼承變量

  1. <?php 
  2.  
  3. $message = 'hello' 
  4.  
  5. // 沒有 "use" 
  6.  
  7. $example = function () { 
  8.  
  9.  var_dump($message); 
  10.  
  11. }; 
  12.  
  13. echo $example(); 
  14.  
  15. // 繼承 $message 
  16.  
  17. $example = function () use($message) { 
  18.  
  19.  var_dump($message); 
  20.  
  21. }; 
  22.  
  23. echo $example(); 
  24.  
  25. // Inherited variable's value is from when the function 
  26.  
  27. // is defined, not when called 
  28.  
  29. $message = 'world'echo $example(); 
  30.  
  31. // Reset message 
  32.  
  33. $message = 'hello' 
  34.  
  35. // Inherit by-reference 
  36.  
  37. $example = function () use(&$message) { 
  38.  
  39.  var_dump($message); 
  40.  
  41. }; 
  42.  
  43. echo $example(); 
  44.  
  45. // The changed value in the parent scope 
  46.  
  47. // is reflected inside the function call 
  48.  
  49. $message = 'world'echo $example(); 
  50.  
  51. // Closures can also accept regular arguments 
  52.  
  53. $example = function ($arguse($message) { 
  54.  
  55.  var_dump($arg . ' ' . $message); 
  56. //Vevb.com 
  57. }; 
  58.  
  59. $example("hello"); 
  60.  
  61. ?> 

php中的匿名函數(shù)的注意事項(xiàng)

在php5.3以后,php加入匿名函數(shù)的使用,今天在使用匿名的時(shí)候出現(xiàn)錯(cuò)誤,不能想php函數(shù)那樣聲明和使用,詳細(xì)看代碼:

  1. $callback=function(){  
  2.  
  3.  return "aa";  
  4.  
  5. };  
  6.  
  7. echo $callback();  

打印出來是aa;

看下面的例子:

  1. echo $callback();  
  2.  
  3. $callback=function(){  
  4.  
  5.  return "aa";  
  6.  
  7. }; 

這時(shí)報(bào)錯(cuò)了!$callback為未聲明,但是使用php自己聲明的函數(shù)都不會(huì)報(bào)錯(cuò)的!

  1. function callback(){  
  2.  
  3.  return "aa";  
  4.  
  5. }  
  6.  
  7. echo callback(); //aa  
  8.  
  9. //Vevb.com 
  10. echo callback(); //aa  
  11.  
  12. function callback(){  
  13.  
  14.  return "aa";  
  15.  
  16. }  

這兩個(gè)都打印出來aa;

在使用匿名函數(shù)的時(shí)候,匿名函數(shù)當(dāng)做變量,須提前聲明,js中也是這樣的!!!!!

以上就是為大家介紹的PHP匿名函數(shù)與注意事項(xiàng),希望對大家的學(xué)習(xí)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 精品亚洲夜色av98在线观看 | 国产精品99久久久久久久vr | 九九热视频这里只有精品 | 免费久久精品 | 黄网站在线免费 | 成人在线视频免费看 | 久久久精品视频免费看 | 天使萌一区二区三区免费观看 | 欧美日韩后 | 国产精品久久久久久模特 | 97黄色网 | 国产午夜精品视频免费不卡69堂 | 87成人免费看片 | 久久精品成人免费国产片桃视频 | 日韩美香港a一级毛片免费 欧美一级淫片007 | 成人福利视频网站 | 日本精品婷婷久久爽一下 | 国产一级性生活视频 | 日韩精品免费一区二区三区 | 精品在线免费播放 | 久久6国产 | 一级观看免费完整版视频 | 内地av在线 | 国产精品野外av久久久 | 操操操日日日干干干 | 爱视频福利 | 精品一区二区三区网站 | 国产羞羞视频在线免费观看 | 性爱视频在线免费 | 久久久三区 | 在线看一区二区三区 | 一级毛片免费大片 | 一色屋任你操 | 日韩毛片一区二区三区 | 免费亚洲视频在线观看 | 欧美一级片免费在线观看 | 婷婷久久网| 中国黄色一级生活片 | 久久久一区二区三区精品 | 毛片免费一区二区三区 | 91精品中文字幕 |