Heim > Backend-Entwicklung > PHP-Tutorial > Detaillierte Erläuterung der Codebeispiele für PHP-Abschlussfunktionen

Detaillierte Erläuterung der Codebeispiele für PHP-Abschlussfunktionen

伊谢尔伦
Freigeben: 2023-03-12 09:46:01
Original
1785 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die PHP-Abschlussfunktion im Detail vor. Wenn die Variable direkt an function() übergeben wird, wird sie als Funktion behandelt Wenn Sie sich für Funktionen interessieren, können Sie sich auf

Anonyme Funktion beziehen, die auch als Abschlussfunktion bezeichnet wird (der Abschluss ermöglicht die Erstellung einer Funktion ohne Angabe einer Funktion und wird am häufigsten verwendet Wird als Rückruf verwendet Der Wert des Funktionsparameters

Die Abschlussfunktion hat keinen Funktionsnamen. Wenn die Variable an function() übergeben wird, wird die definierte Variable behandelt eine Funktion

  $cl = function($name){
    return sprintf('hello %s',name);
  }
  echo $cli('fuck')`
Nach dem Login kopieren
Rufen Sie

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

direkt über den Namen einer Variablen auf, die mithilfe von 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');
Nach dem Login kopieren
als anonyme Funktion definiert ist Beispiel

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));
Nach dem Login kopieren
Das Obige ist der relevante Inhalt zur PHP-Schließungsfunktion, ich hoffe, dass er für das Lernen aller hilfreich sein wird

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Codebeispiele für PHP-Abschlussfunktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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 Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage