Maison >développement back-end >PHP7 >Présentation des pièges de la mise à niveau de PHP7 !

Présentation des pièges de la mise à niveau de PHP7 !

coldplay.xixi
coldplay.xixiavant
2021-02-08 10:13:042570parcourir

Présentation des pièges de la mise à niveau de PHP7 !

Recommandé (gratuit) : PHP7

J'ai entendu dire que la version php7 avait été grandement améliorée auparavant, et enfin Le les projets de l'entreprise seront également mis à niveau vers PHP7.

Avant la mise à niveau, j'ai lu quelques introductions compilées par tout le monde et j'ai découvert que cette version présentait de gros changements de bas en haut. Bien sûr, l'efficacité a également été beaucoup améliorée.

En plus de quelques nouveautés (tout le monde a déjà écrit ceci dans son intégralité, j'en écrirai quelques-unes que je n'ai pas vues, et je le mettrai à jour au fur et à mesure de l'avancement du projet)

Partie extension

1. Faites attention à votre version php et téléchargez/installez l'extension correspondante Je suis dans un environnement windows, je télécharge donc le fichier dll à utiliser

. Rappel amical : faites attention à l'adresse de l'extension dans la configuration ini. Au début, j'ai été surpris de savoir pourquoi aucune de mes extensions n'était étendue, et il n'y avait aucune information dans phpinfo() ! Je ne m'attendais pas à ce que l'adresse soit fausse ! ~~Il est temps de se battre

Il devrait y avoir plus de personnes utilisant Memcache dans la version 2.5. Après quelques recherches, certains sont passés à Memcached, et d'autres ont été recompilés par moi-même. nous avons mis à niveau relativement tard, quelqu'un aurait dû télécharger cette version qui prend en charge PHP7, alors je l'ai trouvée.

Publiez le lien et accédez directement à la version correspondante : https://github.com/nono303/PHP7-memcache-dll

3.phalcon a également une version qui supporte php7 You. peut également trouver directement la version correspondante : https://github.com/phalcon/cphalcon/releases/tag/v3.4.1

Partie de code

1. La méthode split ne peut pas être utilisée en PHP. Vous pouvez utiliser preg_split ou str_split ou explode selon vos besoins

2. Fonction personnalisée Quand. en passant des paramètres, qu'est-ce que cela signifie que les paramètres ne doivent pas avoir de valeur ? Regardez la description du code suivant

Erreur :

function test($name)

{

    if(empty($name))

    {

            echo 'php7时会出现致命错误!~'根本到不了这里;

    }

}

Correct :

function test($name=null)

{

    if(empty($name))

    {

            echo '这里就可以正常执行了~';

    }

}

Malheureusement, beaucoup de mes projets ont C'est comme ça que c'est écrit (en lisant grossièrement une heure par défaut quand il n'y a pas de valeur temporelle !~)

23/10/2018 18:28

Changements dans l'utilisation indirecte des variables , propriétés et méthodes

表达式 PHP 5 的解析方式 PHP 7 的解析方式
$$foo[‘bar’][‘baz’] ${$foo[‘bar’][‘baz’]} ($$foo)[‘bar’][‘baz’]
$$foo[‘bar’][‘baz’] $foo->{$bar[‘baz’]} ($$foo)[‘bar’][‘baz’]
$$foo[‘bar’][‘baz’] $foo->{$bar[‘baz’]}() ($$foo)[‘bar’][‘baz’]
Foo::$bar’baz’ Foo::{$bar[‘baz’]}() (Foo::$bar)[‘baz’]()

Le code utilisant l'ancien ordre d'analyse de droite à gauche doit être réécrit pour utiliser explicitement des parenthèses pour indiquer l'ordre (voir tableau ci-dessus). Cela permet au code de maintenir une compatibilité ascendante avec PHP 7.x et une compatibilité ascendante avec PHP 5.x. (Dit dans la documentation)
D'autres disent qu'il y a beaucoup plus d'avertissements lorsque l'on compare 7. 🎜>

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