Heim  >  Artikel  >  Backend-Entwicklung  >  Wann werden Verschlüsse in PHP verwendet?

Wann werden Verschlüsse in PHP verwendet?

清浅
清浅Original
2019-05-10 14:31:534314Durchsuche

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.

Wann werden Verschlüsse in PHP verwendet?

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(&#39;test&#39;, &#39;getinfo&#39;), &#39;hello world&#39;);

Verwendung in der Rückruffunktion

<?php
//eg array_walk array_map preg_replace_callback etc
echo preg_replace_callback(&#39;~-([a-z])~&#39;, function ($match) {
    return strtoupper($match[1]);
}, &#39;hello-world&#39;);
// 输出 helloWorld
?>

wird einer gewöhnlichen Variablen

<?php
$greet = function($name)
{
    printf("Hello %s\r\n", $name);
};
$greet(&#39;World&#39;);
$greet(&#39;PHP&#39;);
?>

Verwenden Sie use, um von der übergeordneten Domäne zu erben

<?php
$message = &#39;hello&#39;;
// 继承 $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 = &#39;world&#39;;
echo $example();

Parameter übergeben

<?php
$example = function ($arg) use ($message) {
    var_dump($arg . &#39; &#39; . $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(&#39;张三&#39;);
});
$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(&#39;hell world&#39;);
});

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!

Stellungnahme:
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