Maison >développement back-end >tutoriel php >Quelle est la meilleure alternative au « create_function() » obsolète de PHP dans PHP 7.2 et au-delà ?

Quelle est la meilleure alternative au « create_function() » obsolète de PHP dans PHP 7.2 et au-delà ?

DDD
DDDoriginal
2024-12-31 05:34:13981parcourir

What's the Best Alternative to PHP's Deprecated `create_function()` in PHP 7.2 and Beyond?

Fonction create_function() obsolète dans PHP 7.2 : une alternative moderne

PHP 7.2 a rendu obsolète la fonction create_function(), laissant les développeurs chercher une alternative compatible. Cet article aborde ce problème en fournissant une solution qui répond aux exigences de PHP 7.2 tout en conservant les fonctionnalités.

Le défi

Considérez l'extrait de code suivant, qui utilise la fonction create_function() :

$callbacks[$delimiter] = create_function(
  '$matches',
   "return '$delimiter' . strtolower($matches[1]);"
);

Cependant, avec la dépréciation de create_function() dans PHP 7.2, cette approche nécessite un mise à jour.

La solution

La solution réside dans les fonctions anonymes, également appelées fermetures. Les fermetures permettent l'utilisation de variables de portée parent dans le corps de la fonction, fournissant ainsi un moyen d'accéder à la variable $delimiter :

$callbacks[$delimiter] = function($matches) use ($delimiter) {
    return $delimiter . strtolower($matches[1]);
};

Cette fermeture remplace efficacement l'appel create_function() tout en conservant la fonctionnalité souhaitée. Il vous permet de continuer à travailler de manière transparente avec PHP 7.2 et au-delà.

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!

Déclaration:
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