Heim > 类库下载 > PHP类库 > [Stärkung der PHP-Reihe] Der Warenkorbcode erklärt die anonymen Funktionen von PHP

[Stärkung der PHP-Reihe] Der Warenkorbcode erklärt die anonymen Funktionen von PHP

高洛峰
Freigeben: 2016-10-09 12:46:44
Original
1394 Leute haben es durchsucht

[Stärkung der PHP-Reihe] Warenkorbcode-Beschreibung Anonyme PHP-Funktionen

1. Anonyme Funktionen (anonyme Funktionen), auch Abschlüsse genannt, ermöglichen die vorübergehende Erstellung einer Funktion mit nicht spezifiziertem Namen. Der Wert, der am häufigsten als Callback-Funktionsargument verwendet wird. Natürlich gibt es auch andere Anwendungen.

2. Verwendung:

1) Als Wert einer Variablen:

Abschlussfunktionen können auch als Wert von Variablen verwendet werden. PHP konvertiert diesen Ausdruck automatisch in eine Objektinstanz der integrierten Klasse Closure. Die Methode zum Zuweisen eines Abschlussobjekts zu einer Variablen ist dieselbe wie die Syntax der gewöhnlichen Variablenzuweisung, und am Ende muss ein Semikolon hinzugefügt werden

2) Variablen vom übergeordneten Bereich erben:

Abschlussvariablen können vom übergeordneten Bereich geerbt werden. Solche Variablen sollten mithilfe des Sprachkonstrukts use übergeben werden.

 3) Ein vollständiges Beispiel, illustriert mit Warenkorbcode:

<?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(&#39;butter&#39;, 1);
$my_cart->add(&#39;milk&#39;, 3);
$my_cart->add(&#39;eggs&#39;, 6);

// 打出出总价格,其中有 5% 的销售税.
print $my_cart->getTotal(0.05) . "\n";
// 最后结果是 54.29
?>
Nach dem Login kopieren

3. Referenz:

 1) Offizielle PHP-Beschreibung „Anonym Funktion': http://www.php.net/manual/zh/functions.anonymous.php

 2) Die Funktion „constant()“ gibt einen konstanten Wert zurück: http://www.runoob com/. php/func-misc-constant.html

 3) Die Funktion array_walk() wendet benutzerdefinierte Funktionen auf jedes Element im Array an: http://www.w3school.com.cn/php/ func_array_walk. asp

 4) Die Funktion „round()“ rundet Gleitkommazahlen: http://www.w3school.com.cn/php/func_math_round.asp


Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage