Table des matières
1. Modifications rétrocompatibles " >1. Modifications rétrocompatibles
Maison titres Présentation des performances de la version PHP7.2

Présentation des performances de la version PHP7.2

May 14, 2018 pm 01:49 PM
php 介绍

Cet article vous présente principalement en détail les performances de la version PHP7.2, dans l'espoir d'aider tout le monde à mieux comprendre PHP7.2.

1. Modifications rétrocompatibles

Core :

  • Pour les ressources fermées, la fonction gettype() renverra la ressource (fermée ), remplaçant l'ancien type inconnu.

  • Pour __PHP_Incomplete_Class objet de classe, is_object Le ( ) la fonction retournera vrai.

  • Supprimer la prise en charge du système d'exploitation Netware.

  • le type de tableau est converti en type d'objet ((object) ou settype( ) ), la clé entière sera convertie en nom d'attribut, ce qui résout le problème selon lequel les clés numériques des versions précédentes ne peuvent pas être utilisées comme noms d'attribut.

  • le type d'objet est converti en type de tableau ((array) ou settype( ) (Le problème des propriétés entières inaccessibles. Une référence non qualifiée à une constante non définie entraînera une erreur de niveau d'avertissement, remplaçant le niveau de notification précédent. Les versions ultérieures seront des erreurs de niveau d'erreur.

  • Les versions minimales de Windows prises en charge sont Windows 7 et Windows Server 2008 R2.

  • Annule le comportement de vérification de compatibilité des valeurs d'attribut

    trait
  • natives.

    objet
  • ne sera pas utilisé comme nom de classe. <🎜> La fonction

    fmod() est la même, la fonction bcmod()

    annule l'opération modulo (%) , c'est-à-dire que la partie décimale de la valeur est tronquée en un entier. Par exemple :
bcmod('4', '3.5')

renverra 0,5 au lieu de 1.

  • Hashhash_hmac (), hash_hmac_file(),

    hash_pbkdf2()
et

hash_init() (lorsque le paramètre options est

HASH_HMAC
  • ), ces fonctions ne prendront plus en charge les fonctions de hachage non chiffrées.

    JSONQuand json_decode()Lorsque le deuxième paramètre associé à la fonction est nul, le JSON_OBJECT_AS_ARRAY

    dans les options de support des options sera activé, avant Ce paramètre a été ignoré par nos soins dans la version.

Séance

  • Déplacer En plus des codes associés à register_globals, "!" peut être utilisé dans le nom de clé de $_SESSION

    .

session
  • est utilisée pour gérer correctement l'état de la session et interdire les opérations invalides en cas de problème avec. le code, cela déclenchera le changement. Si malheureusement vous rencontrez ce problème, c'est qu'il y a un problème avec votre code.

    sesseion_start(), session_status()

  • ,
  • session_regenerate_id(), ces fonctions sont utilisées pour définir ou renvoyer l'état de session correct.

  • session_unset(), session_write_close()/ session_commit(), session_abort(), session_reset(), ces fonctions ne renvoient aucune valeur de retour. une valeur booléenne. Ils autorisent les paramètres vides et vérifient ces paramètres vides.

  • session_start(), session_set_cookie_params(), session_name(), session_module_name(), session_set_save_handler(), session_regenerate_id(), session_cache_limiter(), session_cache_expire(), session_unset(), session_destroy(), session_write_close()/ session_commit(), session_reset(), ces fonctions désactiveront le statut de session non valide et le statut d'en-tête http, et renverront la valeur booléenne ou la valeur numérique correcte.

  • session.name, session.save_path, session.cookie_lifetime,session.cookie_path, session.cookie_domain,session.cookie_httponly, session.cookie_secure, session.use_cookies, session.use_only_cookies, session.use_strict_mode, session.referer_check, session.cache_limiter, session.cache_expire, session.lazy_write, session. save_handler, session.serialize_handler, session.gc_probability, session.gc_pior, session.gc_maxlifetime, le réglage de ces valeurs ini doit être appelé avec succès par ini_set() fonction, les opérations de modification ini invalides ne réussiront pas.

  • La session pouvant être gérée correctement (session_start()), partielle Les messages d'erreur de niveau E_ERROR seront convertis en niveau E_WARNING.

  • Les sessions ne seront plus initialisées avec des sessions invalides et inutiles

  • Lorsque les informations d'en-tête ont été envoyées, la définition de la nouvelle valeur ini sera invalide à ce moment (via session_name(), session_module_name(), session_save_path(), session_cache_limiter() et session_cache_expire() Ces fonctions).

    Ces comportements corrects affectent désormais l'état des sessions de gestion en mode ligne de commande cli. L'utilisation de la mise en mémoire tampon de sortie comme dans les applications Web résoudra le problème avec les scripts cli.

Standard

Depuis la version 7.1 , sur une machine 64 bits, l'ordre des nombres aléatoires générés par mt_rand() et rand() de la même graine peut être différent.

2. Nouvelles fonctionnalités

Core

  • Lors de la substitution d'une méthode ou d'une interface, son type de paramètre est omis. Cela obéit à la contravariance du type de paramètre du principe d'équilibre de Liskov.

  • Permet à la classe abstraite héritée de remplacer la méthode abstraite de la classe abstraite héritée.

  • Autorise les virgules de fin pour regrouper les espaces de noms.

  • Les annotations de type objet sont autorisées. Implémentation Ajout de la prise en charge du backend LMDB.

JSON

  • dans

    json_encode()
et

json_decode() Ajout de la prise en charge de

JSON_INVALID_IGNORE
  • et

    >Prise en charge de JSON_INVALTD_UTF8_SUBSTITUTE, remplaçant le type invalide codé en utf-8 précédent. OCI8Ajouté Fournit la prise en charge du basculement transparent des applications (TAF) d'Oracle Database.

PCRE

  • Ajouté L'option interne (j) a été ajoutée pour modifier l'option locale

    PCRE_DUPNAMES
. Nouvelle extension de cryptage. Implémentation pour écrire des BLOB.

    Standard
  • Quand Lors de la compilation de PHP avec libargon2, l'API de hachage de mot de passe simplifiée a été mise à jour pour prendre en charge Argon2.

La plateforme Windows prend en charge la fonction proc_nice()

.
  • Zip

Lire /Écrire une archive chiffrée, dépend de libzip 1.2.0, Nouvelle méthode :
  • ZipArchive:: setEncryptionName($name, $method[,$password]); $ mot de passe]);

    Nouvelles constantes : ZipArchive:: EM_NONE ZipArchive:: EM_AES_128 ZipArchive:: EM_AES_192 ZipArchive:: EM_AES_2 56

Accepte le "mot de passe" du contexte du flux zip.

  • ZipArchive implémente la comptabilité, en ajoutant la méthode ZipArchive::count()

    .
  • 3. Modifications du module SAPI

4. >Voici les fonctionnalités qui seront obsolètes dans la version php8.0.

  • CoreLe suivi des erreurs dans le fichier de configuration permettra être abandonné.

  • __autoload()

  • sera obsolète, utilisez
  • spl_autoload_register() à la place.

(unset) sera obsolète. Ce changement n'affectera pas unset (. $var)

structure du langage.

create_function()

La fonction sera obsolète et utilisera à la place une fonction anonyme. La structure de la fonction

  • each() sera obsolète, utilisez foreach()

  • boucle à la place.
  • Exif

  • read_exif_data () sera obsolète, utilisez exif_read_data() à la place.

  • GD

    • png2wbmp() et jpeg2wbmp() seront obsolètes.

    GMP

    • gmp_random () sera obsolète, utilisez gmp_random_bits() ou () à la place.

    Intl

    • INTL_IDNA_VARIANT_2003 sera obsolète, utilisez INTL_IDNA_VARIANT_UTS46 à la place.

    Mbstring

    • mbstring Le fichier de configuration de .func_overload sera supprimé.

    Standard

    • Non Les arguments nécessaires pour appeler parse_str() seront ignorés.

    • L'appel de assert() avec un argument de chaîne sera obsolète et des expressions régulières seront utilisées à la place.

    5. Fonctions modifiées

    Standard

    • Lorsqu'il est défini sur PASSWORD_ARGON2I, password_hash() peut générer des hachages Argon2.

    • Lors de l'utilisation de PASSWORD_ARGON2I, les options suivantes peuvent être définies par défaut : memory_cost ,time_cost. La valeur par défaut de ces options est PASSWORD_ARGON2_DEFAULT_MEMORY_COST. S'ils ne sont pas définis, les valeurs par défaut sont PASSWORD_ARGON2_DEFAULT_TIME_COST et PASSWORD_ARGON2_DEFAULT_THREADS.

    • password_verify() peut vérifier les hachages Argon2.

    • password_get_info() et password_needs_rehash() peuvent Accepte les hachages Argon2.

    • mail()/mb_send_mail()Accepter le tableau$extra_header . Les paramètres du tableau sont vérifiés par rapport à la RFC 2822. Format du tableau : php $extra_headers = [ 'Header-Name' => 'Header value', 'Multiple' => ['Un en-tête', 'Un autre en-tête'], 'Multiline' = " FirstLinern SecondLine", ];

    • Lorsqu'un paramètre non valide est passé, count() La fonction lancera un avertissement.

    • Dans l'ordre des octets big-endian et small-endian, pack() et unpack() prend en charge les types float et double.

    • number_format()La fonction garantira que la valeur zéro ne contient pas de signe négatif.

    XML

    • utf8_encode Les fonctions () et utf8_decode() ont été déplacées vers l'extension standard sous forme de chaînes.

    6. Nouvelles fonctions

    Core

    • Ajout de stream_istty().

    • Ajout de sapi_windows_vt100_support().

    DOM

    • DomNodeList implémente Countable et ajoute DomNodeList::count().

    • DOMNamedNodeMap implémente Countable, en ajoutant DOMNamedNodeMap::count().

    FTP

    • Ajouté ftp_append().

    GD

    • Ajouté imagesetclip() et imagegetclip().

    • Ajout de imageopenpolygon().

    • Ajout de imageresolution().

    • Ajout de imagecreatefrombmp() et imagebmp( ) .

    Hash

    • Ajouté hash_hmac_algos().

    Mbstring

    • ajouté mb_chr() et mb_ord().

    • Ajout de mb_scrub.

    OCI8

    • Ajouté Ajout de la prise en charge de oci_register_taf_callback() et oci_unregister_taf_callback() pour le basculement transparent des applications (TAF) des bases de données Oracle.

    Prises

    • ajoutées socket_addrinfo_lookup(), socket_addrinfo_connect(), socket_addrinfo_bind() et socket_addrinfo_explain().

    SPL

    • Ajouté spl_object_id().

    7. Nouvelles classes et interfaces

    8. extensions et SAPI >L'extension mcrypt obsolète a été déplacée vers PECL.

    libmcrypt n'a pas été maintenu depuis 2007 et l'utilisation continue de cette extension n'est pas recommandée.

    • 9. Autres modifications apportées aux extensions

    • EXIF

    Ajout de la prise en charge des balises exif pour les formats suivants : Samsung, DJI, Panasonic, Sony, Pentax, Minolta, Sigma/Foveon, AGFA, Kyocera, Ricoh et Epson.

    exif_read_data()

      et
    • exif_t ​​​​humbnail() Prend en charge le passage de flux comme premier paramètre.

    • GDDéplacer En plus de l'option de configuration

    • --enable-gd-native-ttf

    .

    • imagegd()Stocke l'image TrueColor en tant qu'image TrueColor, remplaçant la conversion précédente en plaque de correction des couleurs . Lorsqu'il est compilé avec system libgd,

    • mageantialias()
    • est également pris en charge.

      Mbstring
    • mb_check_encoding ()

    • accepte un argument de tableau et vérifie récursivement ses clés et ses valeurs.

      mb_convert_encoding()
    • Accepte un paramètre de tableau, l'encodage de sa valeur peut être converti de manière récursive.

    PDO_OCI

    • --avec-pdo-oci La syntaxe de configuration de n'est plus disponible pour les clients Oracle. Utilisez

      sqlite3_prepare_v2()
    et

    sqlite3_close_v2() pour remplacer leurs fonctions précédentes.

    • 10. Nouvelles constantes globalesCore

    PHP_FLOAT_DIG

    PHP_FLOAT_EPSILON

    • PHP_FLOAT_MIN

      PHP_FLOAT_MAX
    • PHP_OS_FAMILY
    • Fileinfo
    • FILEINFO_EXTENSION

    GD

    • IMG_EFFECT_MULTIPLY

    IMG_BMP

    • PCRE

    • PREG_UNMATCHED_AS_NULL

    Standard :

    • PASSWORD_ARGON2_DEFAULT_MEMORY_COST

    PASSWORD_ARGON2_DEFAULT_TIME_COST

    • PASSWORD_ARGON2_DEFAULT_THREADS

      PASSWORD_ARGON2I
    • 11. dans la gestion des fichiers INI
    • sql.safe_mode

    Cette option INI a été supprimée.

    realpath_cache_size

    • Par défaut C'est 4096k.

    opcache.fast_shutdown

    • Cette option INI a été supprimée. Une variante de gestion fast_shutdown a été intégrée au noyau PHP et sera activée par défaut dans les environnements de production.

    12. Prise en charge de Windows

    • Prend en charge le mode console VT100.

    13.Autres changements

    • Système de compilation

    La version minimale prise en charge d'autoconf est 2.64.

    Recommandations associées : Comment installer IIS, MySQ, nginx, php7.1.7 sous Win10 ?

    • Introduction aux nouvelles fonctionnalités de PHP7Explication détaillée de la clé pour doubler les performances de PHP7

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

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)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

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)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Comment analysez-vous et traitez-vous HTML / XML dans PHP? Comment analysez-vous et traitez-vous HTML / XML dans PHP? Feb 07, 2025 am 11:57 AM

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

7 fonctions PHP que je regrette de ne pas connaître auparavant 7 fonctions PHP que je regrette de ne pas connaître auparavant Nov 13, 2024 am 09:42 AM

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Programme PHP pour compter les voyelles dans une chaîne Programme PHP pour compter les voyelles dans une chaîne Feb 07, 2025 pm 12:12 PM

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Expliquez la liaison statique tardive en PHP (statique: :). Expliquez la liaison statique tardive en PHP (statique: :). Apr 03, 2025 am 12:04 AM

Liaison statique (statique: :) ​​implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Apr 03, 2025 am 12:03 AM

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.