Maison > développement back-end > tutoriel php > 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

小云云
Libérer: 2023-03-20 15:32:02
original
2657 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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;
    }
Copier après la connexion

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
Copier après la connexion

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;
        }
    }
Copier après la connexion

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.
Copier après la connexion

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";
Copier après la connexion

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!

É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