Maison  >  Article  >  développement back-end  >  Résumé des éléments auxquels vous devez prêter attention après la mise à niveau de PHP vers 7.2

Résumé des éléments auxquels vous devez prêter attention après la mise à niveau de PHP vers 7.2

coldplay.xixi
coldplay.xixiavant
2021-03-21 14:44:282097parcourir

Résumé des éléments auxquels vous devez prêter attention après la mise à niveau de PHP vers 7.2

La version PHP a été mise à jour récemment, de 7.1 à 7.2. La version avant la mise à jour :

PHP 7.1.14 (cli) (built: Feb 2 2018 08:42:59) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.1.14, Copyright (c) 1999-2018, by Zend Technologies with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans

La version après la mise à niveau :

PHP 7.2.2 (cli) (built: Feb 24 2018 17:51:12) ( ZTS DEBUG ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.2, Copyright (c) 1999-2018, by Zend Technologies

Recommandé (gratuit) : PHP7

Après la mise à niveau, j'ai constaté que plusieurs frameworks rencontraient des problèmes lors de leur utilisation. La raison principale est que certaines fonctions ont été abandonnées après. 7.2, répertoriés ci-dessous Plusieurs problèmes courants :

1. Chaque fonction a été abandonnée :

Écriture de la version précédente :

<?php
    $array = array();
    each($array);

    // Deprecated:  The each() function is deprecated. This message will be suppressed on further calls

vous demandera obsolète dans la version 7.2, vous pouvez utiliser foreach à la place de chaque méthode, ou vous pouvez modifier chaque méthode vous-même :

<?php
    function func_new_each(&$array){
       $res = array();       $key = key($array);       if($key !== null){
           next($array); 
           $res[1] = $res[&#39;value&#39;] = $array[$key];           $res[0] = $res[&#39;key&#39;] = $key;
       }else{           $res = false;
       }       return $res;
    }

2. Lorsqu'un paramètre non valide est passé, la fonction count() lancera un avertissement :

Écrit de la version précédente

<?php
    count(&#39;&#39;);    // Warning:  count(): Parameter must be an array or an object that implements Countable

Dans la version 7.2, la distinction de type sera strictement appliquée. Si le type du paramètre est incorrect, un avertissement apparaîtra, vous devez donc le faire. faites attention à la valeur du paramètre lorsque vous utilisez la méthode count, mais vous pouvez également passer Modifier la méthode vous-même (non recommandé) :

<?php
    function func_new_count($array_or_countable,$mode = COUNT_NORMAL){
        if(is_array($array_or_countable) || is_object($array_or_countable)){            return count($array_or_countable, $mode);
        }else{            return 0;
        }
    }

3. create_function est abandonné et peut être remplacé par un anonyme. fonction :

Écrit de la version précédente :

<?php
    $newfunc = create_function(&#39;$a,$b&#39;, &#39;return "ln($a) + ln($b) = " . log($a * $b);&#39;);    echo "New anonymous function: $newfunc\n";    echo $newfunc(2, M_E) . "\n";    // outputs
    // New anonymous function: lambda_1
    // ln(2) + ln(2.718281828459) = 1.6931471805599

    // Warning This function has been DEPRECATED as of PHP 7.2.0. Relying on this function is highly discouraged.

Il y aura une invite d'avertissement dans la version 7.2, qui peut être modifiée en fonction anonyme à la place :

<?php
    $newfunc = function ($a,$b){
        return "ln($a) + ln($b) = " . log($a * $b);
    };    echo $newfunc(2, M_E) . "\n";

Le ci-dessus sont quelques problèmes temporairement rencontrés après la mise à niveau. Pour d'autres modifications connexes, veuillez consulter l'équipe technique du produit Lianjia pour plus de détails Traduction et organisation : guide de version PHP7.2

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer