国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP閉包函數詳解

2024-05-04 23:42:57
字體:
來源:轉載
供稿:網友
這篇文章主要為大家詳細介紹了PHP閉包函數,閉包函數沒有函數名稱,直接在function()傳入變量即可 使用時將定義的變量當作函數來處理,對PHP閉包函數感興趣的朋友可以參考一下
 

匿名函數也叫閉包函數(closures允許創建一個沒有指定沒成的函數,最經常用作回調函數參數的值。

閉包函數沒有函數名稱,直接在function()傳入變量即可 使用時將定義的變量當作函數來處理

  $cl = function($name){    return sprintf('hello %s',name);  }  echo $cli('fuck')`

直接通過定義為匿名函數的變量名稱來調用

echo preg_replace_callback('~-([a-z])~', function ($match) {  return strtoupper($match[1]);}, 'hello-world');`

使用use

$message = 'hello';$example = function() use ($message){  var_dump($message);};echo $example();//輸出hello$message = 'world';//輸出hello 因為繼承變量的值的時候是函數定義的時候而不是 函數被調用的時候echo $example();//重置為hello$message = 'hello';//此處傳引用$example = function() use(&$message){ var_dump($message);};echo $example();//輸出hello$message = 'world';echo $example();//此處輸出world//閉包函數也用于正常的傳值$message = 'hello';$example = function ($data) use ($message){  return "{$data},{$message}";};echo $example('world');

example

class Cart{  //在類里面定義常量用 const 關鍵字,而不是通常的 define() 函數。  const PRICE_BUTTER = 1.00;  const PRICE_MILK  = 3.00;  const PRICE_EGGS  = 6.95;  protected $products = [];  public function add($product,$quantity){    $this->products[$product] = $quantity;  }  public function getQuantity($product){    //是否定義了    return isset($this->products[$product])?$this->products[$product]:FALSE;  }  public function getTotal($tax){    $total = 0.0;    $callback = function($quantity,$product) use ($tax , &$total){      //constant 返回常量的值      //__class__返回類名      $price = constant(__CLASS__."::PRICE_".strtoupper($product));      $total += ($price * $quantity)*($tax+1.0);    };    //array_walk() 函數對數組中的每個元素應用用戶自定義函數。在函數中,數組的鍵名和鍵值是參數    array_walk($this->products,$callback);    //回調匿名函數    return round($total,2);  }}$my_cart = new Cart();$my_cart->add('butter',1);$my_cart->add('milk',3);$my_cart->add('eggs',6);print($my_cart->getTotal(0.05));

以上就是關于PHP閉包函數的相關內容,希望對大家的學習有所幫助。



注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 文山县| 汉沽区| 郯城县| 德令哈市| 岱山县| 正镶白旗| 竹溪县| 台州市| 茶陵县| 北安市| 东台市| 建湖县| 张掖市| 富源县| 嘉峪关市| 鸡西市| 乡城县| 遂宁市| 万全县| 遂昌县| 洱源县| 涪陵区| 柘荣县| 子洲县| 民县| 额敏县| 兴宁市| 伊金霍洛旗| 兴隆县| 芮城县| 新建县| 贵阳市| 南木林县| 都安| 玛纳斯县| 澎湖县| 桐庐县| 浦县| 上栗县| 赫章县| 临泉县|