Die Verwendungsszenarien von Abschlüssen in PHP sind: 1. Beim dynamischen Aufruf statischer Klassen; 3. Einer gewöhnlichen Variablen zugewiesen; 5. Verwendung zum Erben von der übergeordneten Domäne; . Bei der Übergabe von Parametern usw.
Die Verwendungsszenarien von Abschlüssen in PHP sind: Wenn Sie eine statische Klasse dynamisch aufrufen, verwenden Sie sie in der Rückruffunktion, weisen Sie sie einer gewöhnlichen Variablen zu und verwenden Sie sie Beim Erben von der übergeordneten Domäne und Übergeben von Parametern
Verschlussfunktion
Anonyme Funktion, auch Abschlussfunktion (Closure) genannt, ermöglicht temporäre Erstellt a Funktion ohne angegebenen Namen. Der am häufigsten als Callback-Funktionsargument verwendete Wert. Natürlich gibt es auch andere Anwendungen.
Verwendungsszenarien
Beim dynamischen Aufruf einer statischen Klasse
<?php class test { public static function getinfo() { var_dump(func_get_args()); } } call_user_func(array('test', 'getinfo'), 'hello world');
Verwendung in der Rückruffunktion
<?php //eg array_walk array_map preg_replace_callback etc echo preg_replace_callback('~-([a-z])~', function ($match) { return strtoupper($match[1]); }, 'hello-world'); // 输出 helloWorld ?>
wird einer gewöhnlichen Variablen
<?php $greet = function($name) { printf("Hello %s\r\n", $name); }; $greet('World'); $greet('PHP'); ?>
Verwenden Sie use, um von der übergeordneten Domäne zu erben
<?php $message = 'hello'; // 继承 $message $example = function () use ($message) { var_dump($message); }; echo $example(); // Inherit by-reference $example = function () use (&$message) { var_dump($message); }; echo $example(); // The changed value in the parent scope // is reflected inside the function call $message = 'world'; echo $example();
Parameter übergeben
<?php $example = function ($arg) use ($message) { var_dump($arg . ' ' . $message); }; $example("hello");
Verwendung in OO
<?php class factory{ private $_factory; public function set($id,$value){ $this->_factory[$id] = $value; } public function get($id){ $value = $this->_factory[$id]; return $value(); } } class User{ private $_username; function __construct($username="") { $this->_username = $username; } function getUserName(){ return $this->_username; } } $factory = new factory(); $factory->set("zhangsan",function(){ return new User('张三'); }); $factory->set("lisi",function(){ return new User("李四"); }); echo $factory->get("zhangsan")->getUserName(); echo $factory->get("lisi")->getUserName();
Funktion aufrufen
<?php function call($callback){ $callback(); } call(function() { var_dump('hell world'); });
Das obige ist der detaillierte Inhalt vonWann werden Verschlüsse in PHP verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!