【PHPシリーズ強化】ショッピングカートコード PHPの匿名関数の説明
1. 定義: 匿名関数 (匿名関数) は、クロージャとも呼ばれ、指定された名前なしで関数を一時的に作成できます。コールバック関数の引数として最も一般的に使用される値。もちろん、他のアプリケーションもあります。
2. 使い方:
1) 変数の値として:
クロージャ関数は変数の値としても使用できます。 PHP は、この式を組み込みクラス Closure のオブジェクト インスタンスに自動的に変換します。クロージャオブジェクトを変数に代入する方法は、通常の変数代入の構文と同じで、最後にセミコロンを追加する必要があります
2) 親スコープから変数を継承する:
クロージャは親から変数を継承できます。範囲。 このような変数は、use language 構造を使用して渡す必要があります。
3) ショッピングカートコードで示された完全な例:
<?php // 一个基本的购物车,包括一些已经添加的商品和每种商品的数量。 // 其中有一个方法用来计算购物车中所有商品的总价格,该方法使 // 用了一个 closure 作为回调函数。 class Cart { const PRICE_BUTTER = 1.00; const PRICE_MILK = 3.00; const PRICE_EGGS = 6.95; protected $products = array(); 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.00; $callback = function ($quantity, $product) use ($tax, &$total) { $pricePerItem = constant(__CLASS__ . "::PRICE_" . strtoupper($product)); $total += ($pricePerItem * $quantity) * ($tax + 1.0); }; 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); // 打出出总价格,其中有 5% 的销售税. print $my_cart->getTotal(0.05) . "\n"; // 最后结果是 54.29 ?>
3. 参考:
1) 「匿名関数」の PHP 公式説明: http://www.php.net/manual/zh / function.anonymous.php
2) constant() 関数は定数値を返します: http://www.runoob.com/php/func-misc-constant.html
3) array_walk() 関数は定数を返します配列内の値 ユーザー定義関数を各要素に適用します: http://www.w3school.com.cn/php/func_array_walk.asp
4)round() 関数は浮動小数点数を丸めます: http://www .w3school.com .cn/php/func_math_round.asp

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

WebStorm Mac版
便利なJavaScript開発ツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 中国語版
中国語版、とても使いやすい

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター
