Table des matières
Avant-propos
Les avantages de PHP7
Nouveautés apportées par PHP7
1.
2.set_exception_handler() ne garantit plus que l'objet d'exception reçu doit être un objet Exception
3. Nouvel opérateur "<=>"
6.AST : Arbre de syntaxe abstraite, arbre de syntaxe abstraite
AST sert d'intermédiaire dans le PHP processus de compilation Il remplace la manière originale de cracher l'opcode directement à partir de l'interpréteur, en dissociant l'interpréteur (analyseur) et le compilateur (compilateur), ce qui peut réduire certains codes de piratage et, en même temps, rendre l'implémentation plus facile à comprendre et à maintenir. .
mssql
3. Modification du mécanisme de traitement des paramètres
4.foreach修改
5. list修改
6.变量处理机制修改
7.杂项
如何充分发挥PHP7的性能
1.开启Opcache
2.使用GCC 4.8以上进行编译
3.开启HugePage (根据系统内存决定)
4.PGO (Profile Guided Optimization)
如何更好的写代码来迎接PHP7?
如何升级当前项目代码来兼容PHP7?
逐步剔除php7不支持的代码
更多资料
Maison développement back-end PHP7 Résumé de la mise à niveau de PHP5.6 vers PHP7

Résumé de la mise à niveau de PHP5.6 vers PHP7

Apr 28, 2021 am 10:25 AM
php5.6 php7

Résumé de la mise à niveau de PHP5.6 vers PHP7

Avant-propos

Cet article est un résumé d'une conférence + une recherche de suivi.
Je suivais la mode à l'époque et j'ai immédiatement installé php7 sur mon ordinateur dès sa sortie. php5 et php7 coexistaient j'ai tout de suite écrit un script de boucle super chronophage et je l'ai testé. C'est vrai que php7 c'est beaucoup. plus puissant, puis j'y ai prêté une certaine attention. Nouvelles fonctionnalités et certaines utilisations abandonnées.
La mise à niveau de php étant une priorité absolue, la société ne prévoit de mettre à niveau que dans un avenir proche, je ne peux donc qu'apprécier le plaisir apporté par php7 en privé auparavant. L'ami en charge de la mise à niveau a fait un partage, ce qui est tout à fait. complet. Notez-le ici.

Recommandé (gratuit) : PHP7

Principales questions de recherche :
1. Avantages de PHP7
2.PHP7 Nouveautés apporté
3. Abandon apporté par PHP7
4. Changements apportés par PHP7
5. Comment exploiter pleinement les performances de PHP7
6. Comment écrire un meilleur code pour accueillir PHP7 ?
7. Comment mettre à jour le code du projet actuel pour qu'il soit compatible avec PHP7 ?

Les avantages de PHP7

Oui, les performances ont été grandement amélioré, peut économiser des machines et économiser de l'argent.

Nouveautés apportées par PHP7

1.

Vous pouvez utiliser une chaîne, un entier, un float et un bool pour déclarer les types de paramètres de fonction et les valeurs de retour de la fonction.

declare(strict_types=1);
function add(int $a, int $b): int {
    return $a+$b;
}

echo add(1, 2);
echo add(1.5, 2.6);
Copier après la connexion

php5 ne peut pas exécuter le code ci-dessus. Lorsque php7 est exécuté, il affichera d'abord un 3 et une erreur (l'argument 1 passé à add() doit être du type entier, float donné) ;

Il existe deux modes de déclaration de type scalaire : le mode obligatoire (par défaut) et le mode strict.
declare(strict_types=1), doit être placé sur la première ligne du fichier pour exécuter le code. Le fichier actuel est valide !

2.set_exception_handler() ne garantit plus que l'objet d'exception reçu doit être un objet Exception

En PHP 7, il existe de nombreuses erreurs fatales et erreurs fatales récupérables , sont convertis en exceptions pour traitement. Ces exceptions héritent de la classe Error, qui implémente l'interface Throwable (toutes les exceptions implémentent cette interface de base).

PHP7 facilite davantage les développeurs et leur donne un plus grand contrôle sur le programme. Parce que par défaut, l'erreur provoquera directement l'interruption du programme, tandis que PHP7 offre la possibilité de la capturer et de la traiter, permettant ainsi au programme de continuer. la mise en œuvre continue de fournir aux programmeurs des options plus flexibles.

3. Nouvel opérateur "<=>"

Syntaxe : $c = $a <=> de $b, $c est 1

Si $a == $b, la valeur de $c est 0

Si $a < 1

4. Nouvel opérateur "??"

Si la variable existe et que la valeur n'est pas NULL, elle renverra sa propre valeur, sinon elle renverra son deuxième numéro d'opération. .

//原写法
$username = isset($_GET[&#39;user]) ? $_GET[&#39;user] : &#39;nobody&#39;;

//现在
$username = $_GET[&#39;user&#39;] ?? &#39;nobody&#39;;
Copier après la connexion
5.define() Définir un tableau de constantes

define(&#39;ARR&#39;,[&#39;a&#39;,&#39;b&#39;]);
echo ARR[1];// a
Copier après la connexion

6.AST : Arbre de syntaxe abstraite, arbre de syntaxe abstraite

AST sert d'intermédiaire dans le PHP processus de compilation Il remplace la manière originale de cracher l'opcode directement à partir de l'interpréteur, en dissociant l'interpréteur (analyseur) et le compilateur (compilateur), ce qui peut réduire certains codes de piratage et, en même temps, rendre l'implémentation plus facile à comprendre et à maintenir. .

PHP5 : Code PHP-> Analyse de la syntaxe de l'analyseur-> OPCODE ->

Référence : https://wiki.php.net/rfc/abstract_syntax_tree

7. Fonction anonyme

$anonymous_func = function(){return 'function';};
echo $anonymous_func(); // 输出function
Copier après la connexion
8. }")

9.Unserialize fournit des fonctionnalités de filtrage

pour empêcher l'injection de code de données illégales et fournir des données désérialisées plus sûres.

10. Optimisation de la référence de l'espace de noms

// PHP7以前语法的写法 
use FooLibrary\Bar\Baz\ClassA; 
use FooLibrary\Bar\Baz\ClassB; 
// PHP7新语法写法 
use FooLibrary\Bar\Baz\{ ClassA, ClassB};
Copier après la connexion
Abandon apporté par PHP7

1 Extension abandonnée

Expression régulière Ereg

mssql

mysql<.> sybase_ct


2. Fonctionnalités obsolètes

Impossible d'utiliser des constructeurs du même nom

Les méthodes d'instance ne peuvent pas être appelées en tant que méthodes statiques

3. >

l'appel de méthode

call_user_method()  
call_user_method_array()
Copier après la connexion
doit utiliser call_user_func() et call_user_func_array()

fonction liée au cryptage

mcrypt_generic_end() 
mcrypt_ecb() 
mcrypt_cbc() 
mcrypt_cfb() 
mcrypt_ofb()
Copier après la connexion
Remarque : PHP7.1 et versions ultérieures mcrypt_* Les fonctions de séquence seront être retiré. Utilisation recommandée : fonction de séquence openssl

Divers

set_magic_quotes_runtime 
set_socket_blocking 
Split 
imagepsbbox() 
imagepsencodefont() 
imagepsextendfont() 
imagepsfreefont() 
imagepsloadfont() 
imagepsslantfont() 
imagepstext()
Copier après la connexion
4 Utilisation obsolète

La variable $HTTP_RAW_POST_DATA a été supprimée, utilisez plutôt php://input

. Les commentaires commençant par # ne sont plus pris en charge dans les fichiers ini. Utilisez ";"

Suppression de la prise en charge du format ASP et de la syntaxe de script : <% et

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment résoudre le problème lorsque php7 détecte que le port TCP ne fonctionne pas Comment résoudre le problème lorsque php7 détecte que le port TCP ne fonctionne pas Mar 22, 2023 am 09:30 AM

En php5, nous pouvons utiliser la fonction fsockopen() pour détecter le port TCP. Cette fonction peut être utilisée pour ouvrir une connexion réseau et effectuer certaines communications réseau. Mais en php7, la fonction fsockopen() peut rencontrer certains problèmes, comme ne pas pouvoir ouvrir le port, ne pas pouvoir se connecter au serveur, etc. Afin de résoudre ce problème, nous pouvons utiliser la fonction socket_create() et la fonction socket_connect() pour détecter le port TCP.

Que dois-je faire si le plug-in est installé dans php7.0 mais qu'il indique toujours qu'il n'est pas installé ? Que dois-je faire si le plug-in est installé dans php7.0 mais qu'il indique toujours qu'il n'est pas installé ? Apr 02, 2024 pm 07:39 PM

Pour résoudre le problème du plugin n'affichant pas installé dans PHP 7.0 : Vérifiez la configuration du plugin et activez le plugin. Redémarrez PHP pour appliquer les modifications de configuration. Vérifiez les autorisations du fichier du plugin pour vous assurer qu'elles sont correctes. Installez les dépendances manquantes pour garantir le bon fonctionnement du plugin. Si toutes les autres étapes échouent, reconstruisez PHP. D'autres causes possibles incluent des versions de plugin incompatibles, le chargement d'une mauvaise version ou des problèmes de configuration PHP.

Comment installer l'extension mongo dans php7.0 Comment installer l'extension mongo dans php7.0 Nov 21, 2022 am 10:25 AM

Comment installer l'extension mongo dans php7.0 : 1. Créez le groupe d'utilisateurs et l'utilisateur mongodb ; 2. Téléchargez le package de code source mongodb et placez le package de code source dans le répertoire "/usr/local/src/" ; Entrez le répertoire « src/ » ; 4. Décompressez le package de code source ; 5. Créez le répertoire de fichiers mongodb ; 6. Copiez les fichiers dans le répertoire « mongodb/ » 7. Créez le fichier de configuration mongodb et modifiez la configuration.

Comment installer et déployer php7.0 Comment installer et déployer php7.0 Nov 30, 2022 am 09:56 AM

Comment installer et déployer php7.0 : 1. Accédez au site officiel de PHP pour télécharger la version d'installation correspondant au système local ; 2. Extrayez le fichier zip téléchargé dans le répertoire spécifié 3. Ouvrez la fenêtre de ligne de commande et accédez à ; le répertoire "E:\php7" Exécutez simplement la commande "php -v".

Guide FAQ de l'environnement serveur PHP : résoudre rapidement les problèmes courants Guide FAQ de l'environnement serveur PHP : résoudre rapidement les problèmes courants Apr 09, 2024 pm 01:33 PM

Les solutions courantes pour les environnements de serveur PHP consistent à s'assurer que la version correcte de PHP est installée et que les fichiers pertinents ont été copiés dans le répertoire du module. Désactivez SELinux temporairement ou définitivement. Vérifiez et configurez PHP.ini pour vous assurer que les extensions nécessaires ont été ajoutées et configurées correctement. Démarrez ou redémarrez le service PHP-FPM. Vérifiez les paramètres DNS pour les problèmes de résolution.

Lequel est le meilleur, php8 ou php7 ? Lequel est le meilleur, php8 ou php7 ? Nov 16, 2023 pm 03:09 PM

Par rapport à PHP7, PHP8 présente certains avantages et améliorations en termes de performances, de nouvelles fonctionnalités et améliorations de la syntaxe, du système de types, de la gestion des erreurs et des extensions. Cependant, le choix de la version à utiliser dépend de vos besoins spécifiques et des circonstances du projet. Introduction détaillée : 1. Amélioration des performances, PHP8 introduit le compilateur Just-in-Time (JIT), qui peut améliorer la vitesse d'exécution du code ; 2. Nouvelles fonctionnalités et améliorations de la syntaxe, PHP8 prend en charge la déclaration des paramètres nommés et des paramètres facultatifs, création de fonctions L'appel est plus flexible ; des classes anonymes, des déclarations de propriétés de type, etc. sont introduites.

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Mar 31, 2025 pm 11:54 PM

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...

Enregistrez une fois et utilisez strace pour diagnostiquer le problème de PHP occupant trop de ressources système. Enregistrez une fois et utilisez strace pour diagnostiquer le problème de PHP occupant trop de ressources système. May 03, 2024 pm 04:31 PM

Environnement local : système redhat6.7. nginx1.12.1, php7.1.0, le code utilise le problème du framework yii2 : le site web local doit utiliser le service elasticsearch. Lorsque PHP utilise elasticsearch construit sur un serveur local, la charge locale est normale. Lorsque j'utilise le service elasticsearch d'AWS, la charge sur le serveur local est souvent trop élevée. Vérifiez les journaux nginx et php et ne trouvez aucune exception. Le nombre de connexions simultanées dans le système n’est pas non plus élevé. À ce moment-là, j'ai pensé à un outil de diagnostic strace que notre patron m'a présenté. Processus de débogage : recherchez un sous-processus php idstrace-

See all articles