Maison  >  Article  >  développement back-end  >  Ce que vous devez savoir après la mise à niveau de PHP vers 7.2

Ce que vous devez savoir après la mise à niveau de PHP vers 7.2

小云云
小云云original
2018-03-01 13:32:422574parcourir

La version PHP a été récemment mise à niveau de 7.1 à 7.2. Il y a certaines choses auxquelles nous devons prêter attention après la mise à niveau. J'espère que cet article pourra aider tout le monde.

Version pré-mise à niveau :

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

Version post-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

Après la mise à niveau, il a été constaté que plusieurs frameworks rencontraient des problèmes lorsque en les utilisant. La raison principale est que certaines fonctions ont été abandonnées après la version 7.2. Voici quelques 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

Dans la version 7.2, il vous indiquera qu'elle est obsolète. Vous pouvez utiliser foreach à la place de each méthode, ou vous pouvez modifier la méthode each vous-même :

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

2. est passé, la fonction count() lancera un avertissement :

L'écriture de la version précédente

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

appliquera strictement la différenciation des types dans la version 7.2. Si le type de paramètre est incorrect, un avertissement sera émis. apparaît, vous devez donc utiliser la méthode count. Faites attention à la valeur du paramètre, mais vous pouvez également le modifier 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. remplacé par une fonction anonyme :

Écriture de la version précédente :

<?php
    $newfunc = create_function('$a,$b', 'return "ln($a) + ln($b) = " . log($a * $b);');    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";

Ci-dessus sont quelques problèmes rencontrés temporairement après la mise à niveau, d'autres liés. Pour les modifications, veuillez vous référer à la traduction et à l'arrangement effectués par l'équipe technique du produit Lianjia : Guide de version PHP7.2.

Recommandations associées :

enregistrement de la commande d'installation php7 sous Linux Linux View php version linux php update linux php mssq

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