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 :
É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; }
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; } }
É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 :
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!