Maison > développement back-end > tutoriel php > Explication détaillée des fonctions anonymes et précautions de PHP

Explication détaillée des fonctions anonymes et précautions de PHP

墨辰丷
Libérer: 2023-03-28 13:38:02
original
1562 Les gens l'ont consulté

Cet article présente principalement des informations pertinentes sur les fonctions anonymes de PHP et les précautions. Les fonctions anonymes ont été introduites dans PHP5.3. PHP5.3 a non seulement introduit des fonctions anonymes, mais a également apporté de nouvelles fonctionnalités plus nombreuses et améliorées. des fonctions et précautions anonymes PHP. Les amis qui en ont besoin peuvent se référer à

Fonctions et précautions anonymes PHP

PHP5.2 Précédent : chargement automatique, PDO et MySQLi, contraintes de type.
PHP5.2 : prise en charge de JSON
PHP5.3 : fonctionnalités obsolètes, fonctions anonymes, nouvelles méthodes magiques, espaces de noms, liaison statique tardive, Heredoc et Nowdoc, const, opérateur ternaire, Phar
PHP5.4 : court Open Tag, abréviation du tableau, traits, serveur Web intégré, détails modifiés
PHP5.5 : rendement, list() pour foreach, détails modifiés
PHP5.6 : amélioration constante, paramètres de fonction variables, amélioration de l'espace de noms

De nos jours, pratiquement tout le monde utilise PHP5.3 et les versions ultérieures, mais je pense qu'un phénomène courant est que de nombreuses nouvelles fonctionnalités, après si longtemps, ne sont toujours pas complètement populaires et sont rarement utilisées dans les projets.

Regardez les fonctions anonymes PHP :

'test' => function(){
    return 'test'
},
Copier après la connexion

La définition des fonctions anonymes PHP est très simple, il s'agit d'attribuer une valeur à une variable, mais ceci La valeur est une fonction.

Ce qui précède utilise le framework Yii pour configurer le fichier de composants et ajouter une configuration de test.

Que sont les fonctions anonymes PHP ?

Voir l'explication officielle :

Les fonctions anonymes, également appelées fermetures, permettent la création temporaire d'une fonction sans nom spécifié. La valeur la plus couramment utilisée comme argument de fonction de rappel. Bien entendu, il existe également d’autres applications.

Exemple de fonction anonyme

<?php
echo preg_replace_callback(&#39;~-([a-z])~&#39;, function ($match) {
  return strtoupper($match[1]);
}, &#39;hello-world&#39;);
// 输出 helloWorld
?>
Copier après la connexion

Les fonctions de fermeture peuvent également être utilisées comme valeur de variables. PHP convertira automatiquement cette expression en une instance d'objet de la classe intégrée Closure. La méthode d'affectation d'un objet de fermeture à une variable est la même que la syntaxe d'affectation de variable ordinaire, et un point-virgule est également ajouté à la fin :

Exemple d'affectation de variable de fonction anonyme

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

Les fermetures peuvent hériter des variables de la portée parent. Toutes ces variables doivent être transmises à l’aide de la construction du langage use.

Hériter des variables du scope parent

<?php
$message = &#39;hello&#39;
// 没有 "use"
$example = function () {
  var_dump($message);
};
echo $example();
// 继承 $message
$example = function () use($message) {
  var_dump($message);
};
echo $example();
// Inherited variable&#39;s value is from when the function
// is defined, not when called
$message = &#39;world&#39;echo $example();
// Reset message
$message = &#39;hello&#39;
// 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();
// Closures can also accept regular arguments
$example = function ($arg) use($message) {
  var_dump($arg . &#39; &#39; . $message);
};
$example("hello");
?>
Copier après la connexion

Notes sur les fonctions anonymes en php

en php5. PHP ajoutera l'utilisation de fonctions anonymes. Aujourd'hui, une erreur s'est produite lors de l'utilisation de fonctions anonymes. Vous ne pouvez pas les déclarer et les utiliser comme les fonctions PHP. Voir le code pour plus de détails

$callback=function(){ 
 return "aa"; 
}; 
echo $callback();
Copier après la connexion

<. 🎜>

Il s'imprime sous la forme aa

Regardez l'exemple suivant :

echo $callback(); 
$callback=function(){ 
 return "aa"; 
};
Copier après la connexion

Une erreur est signalée à ce niveau. temps! $callback n'est pas déclaré, mais aucune erreur ne sera signalée lors de l'utilisation de fonctions déclarées par PHP lui-même !

function callback(){ 
 return "aa"; 
} 
echo callback(); //aa 
 
echo callback(); //aa 
function callback(){ 
 return "aa"; 
}
Copier après la connexion

Ces deux sont imprimés aa

Lors de l'utilisation de fonctions anonymes, les fonctions anonymes sont traitées comme des variables et doivent être déclarées dans advance , c'est la même chose en js ! ! ! ! !

Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun.


Recommandations associées :

Comment implémenter la fonction de loterie des candidats à un événement en PHP

PHP implémente des méthodes pour ajouter et soustraire des dates, des mois, des jours, des semaines, des heures, des minutes, des secondes, etc.

PHP implémente l'obtention de zones de texte, de champs de mot de passe et de boutons La valeur de

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal