Dieser Artikel stellt hauptsächlich PHPanonyme Funktionen und Anmerkungen im Detail vor. Freunde, die anonyme Funktionen lernen möchten, können hier nachschlagen.
php5.3 führt nicht nur anonyme Funktionen ein, sondern bietet auch viele bessere neue Funktionen. Werfen wir einen Blick auf die anonymen Funktionen und Vorsichtsmaßnahmen von PHP. Der spezifische Inhalt ist wie folgt:
PHP5.2 : Autoload, PDO und MySQLi, Typbeschränkungen
PHP5.2: JSON-Unterstützung
PHP5.3: Veraltete Funktion, anonyme Funktion, neu magische Methode, Namespace, späte statische Bindung, Heredoc und Nowdoc, const, ternärer Operator Operator, Phar
PHP5.4: Short Open Tag, Array-Abkürzung, Eigenschaften, integrierter Webserver, Details geändert
PHP5.5: yield, list() für foreach verwendet, Details geändert
PHP5.6: Konstante Erweiterung, Variable Funktionsparameter , Namespace-Erweiterung
Jetzt werden im Grunde alle Versionen nach PHP5.3 verwendet, aber es scheint, dass ein häufiges Phänomen darin besteht, dass viele neue Funktionen nicht vollständig populär gemacht wurden nach so langer Zeit und werden nur noch selten in Projekten eingesetzt.
Sehen Sie sich anonyme PHP-Funktionen an:
'test' => function(){ return 'test' },
Die Definition anonymer PHP-Funktionen ist sehr einfach. Sie besteht darin, einer Variablen einen Wert zuzuweisen, aber dieser Wert ist eine Funktion.
Oben wird das Yii-Framework verwendet, um die Komponentendatei zu konfigurieren und eine Testkonfiguration hinzuzufügen.
Was sind anonyme PHP-Funktionen?
Siehe die offizielle Erklärung:
Anonyme Funktionen, werden auch Abschlüsse genannt und ermöglichen die temporäre Erstellung einer Funktion ohne angegebenen Namen. Der Wert, der am häufigsten als Callback-Funktionsargument verwendet wird. Natürlich gibt es auch andere Anwendungen.
Anonymes Funktionsbeispiel
<?php echo preg_replace_callback('~-([a-z])~', function ($match) { return strtoupper($match[1]); }, 'hello-world'); // 输出 helloWorld ?>
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 wird außerdem ein Semikolon hinzugefügt:
Beispiel für die Zuweisung einer anonymen Funktionsvariablen
<?php $greet = function($name) { printf("Hello %s\r\n", $name); }; $greet('World'); $greet('PHP'); ?>
Abschlussvariablen können vom übergeordneten Bereich geerbt werden. Solche Variablen sollten mithilfe des Sprachkonstrukts use übergeben werden.
Variablen vom übergeordneten Bereich erben
<?php $message = 'hello' // 没有 "use" $example = function () { var_dump($message); }; echo $example(); // 继承 $message $example = function () use($message) { var_dump($message); }; echo $example(); // Inherited variable's value is from when the function // is defined, not when called $message = 'world'echo $example(); // Reset message $message = 'hello' // 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(); // Closures can also accept regular arguments $example = function ($arg) use($message) { var_dump($arg . ' ' . $message); }; $example("hello"); ?>
Hinweise zu anonymen Funktionen in PHP
Nach PHP5.3 fügt PHP anonyme Funktionen hinzu , bei der Verwendung von „anonymous today“ ist ein Fehler aufgetreten. Schauen Sie sich den Code im Detail an.
$callback=function(){ return "aa"; }; echo $callback();
Zu diesem Zeitpunkt wurde ein Fehler gemeldet! $callback ist nicht deklariert, es wird jedoch kein Fehler gemeldet, wenn von PHP selbst deklarierte Funktionen verwendet werden!
echo $callback(); $callback=function(){ return "aa"; };
Beide werden aa gedruckt.
function callback(){ return "aa"; } echo callback(); //aa echo callback(); //aa function callback(){ return "aa"; }
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung von Beispielen anonymer Funktionen und Vorsichtsmaßnahmen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!