Maison  >  Questions et réponses  >  le corps du texte

La fonction PHP 7.2 create_function() est obsolète

J'ai utilisé create_function() dans l'application ci-dessous.

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

Mais depuis PHP 7.2.0, create_function() est obsolète.

Comment réécrire le code ci-dessus pour PHP 7.2.0 ?

P粉831310404P粉831310404251 Il y a quelques jours338

répondre à tous(2)je répondrai

  • P粉354948724

    P粉3549487242024-01-17 10:01:58

    Je voudrais contribuer à un cas très simple que j'ai trouvé dans un thème WordPress et qui semble bien fonctionner :

    Comprend la déclaration add_filter suivante :

    add_filter( 'option_page_capability_' . ot_options_id(), create_function( '$caps', "return '$caps';" ), 999 );

    Remplacez-le par :

    add_filter( 'option_page_capability_' . ot_options_id(), function($caps) {return $caps;},999);

    Nous pouvons voir l'utilisation de function(), qui est une création de fonction très typique, au lieu d'utiliser le create_function() obsolète pour créer des fonctions.

    répondre
    0
  • P粉287726308

    P粉2877263082024-01-17 00:49:46

    Vous devriez pouvoir utiliser des appels de fonctions anonymes (alias fermetures) à la portée parent $delimiter des variables comme celle-ci :

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

    répondre
    0
  • Annulerrépondre