Heim  >  Artikel  >  Einführung in die Leistung der PHP7.2-Version

Einführung in die Leistung der PHP7.2-Version

小云云
小云云Original
2018-05-14 13:49:5811847Durchsuche

Dieser Artikel stellt Ihnen hauptsächlich die Leistung der PHP7.2-Version im Detail vor und hofft, allen zu einem besseren Verständnis von PHP7.2 zu verhelfen.

1. Abwärtsinkompatible Änderungen

Kern:

  • Für geschlossene Ressourcen gibt die Funktion gettype() die Ressource (geschlossen) zurück ) und ersetzt den vorherigen unbekannter Typ.

  • Für __PHP_Incomplete_Class Klassenobjekt, is_object Das ( )-Funktion gibt true zurück.

  • Unterstützung für Netware OS entfernen.

  • Array-Typ wird in Objekttyp konvertiert ((object) oder settype( ) ) wird der Ganzzahlschlüssel in einen Attributnamen umgewandelt, wodurch das Problem behoben wird, dass die Ziffernschlüssel in früheren Versionen nicht als Attributnamen verwendet werden können.

  • Objekttyp wird in Array-Typ konvertiert ((array) oder settype( ) ( Das Problem unzugänglicher Integer-Eigenschaften. Unqualifizierter Verweis auf eine undefinierte Konstante führt zu einem Fehler der Warnstufe, der die vorherige Hinweisstufe ersetzt.

  • Die mindestens unterstützten Windows-Versionen sind Windows 7 und Windows Server 2008 R2.

  • Bricht das Kompatibilitätsprüfungsverhalten nativer

    Merkmals
  • -Attributwerte ab.

    Objekt
  • wird nicht als Klassenname verwendet. <🎜> Die Funktion

    fmod() ist die gleiche, die Funktion bcmod()

    bricht die Modulo-Operation ab (%) , das heißt, der Dezimalteil des Werts wird in eine Ganzzahl gekürzt. Beispiel:
bcmod('4', '3.5')

gibt 0,5 statt 1 zurück.

  • Hashhash_hmac (), hash_hmac_file(),

    hash_pbkdf2()
und

hash_init() (wenn der Optionsparameter

HASH_HMAC
  • ist), unterstützen diese Funktionen keine unverschlüsselten Hash-Funktionen mehr.

    JSONWann json_decode()Wenn der zweite Parameter assoc der Funktion null ist, wird JSON_OBJECT_AS_ARRAY

    in den Optionen zur Unterstützung aktiviert Dieser Parameter wurde von uns in der Version ignoriert.

Sitzung

  • Verschieben Zusätzlich zu register_globals-bezogenen Codes kann „!“ im Schlüsselnamen von $_SESSION

    verwendet werden.

Sitzung
  • wird verwendet, um den Sitzungsstatus korrekt zu verwalten und ungültige Vorgänge zu verhindern, wenn ein Problem auftritt Wenn Sie den Code eingeben, wird die Änderung ausgelöst. Wenn dieses Problem leider auftritt, liegt ein Problem mit Ihrem Code vor.

    session_start(), session_status()

  • ,
  • session_regenerate_id(), diese Funktionen werden verwendet, um den richtigen Sitzungsstatus festzulegen oder zurückzugeben.

  • session_unset(), session_write_close()/ session_commit(), session_abort(), session_reset(), diese Funktionen geben keinen Rückgabewert zurück ein boolescher Wert. Sie lassen leere Parameter zu und prüfen, ob diese leer sind.

  • 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(), diese Funktionen deaktivieren den ungültigen Sitzungsstatus und den HTTP-Header-Status und geben den richtigen booleschen Wert oder numerischen Wert zurück.

  • 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, die Einstellung dieser INI-Werte muss erfolgreich durch ini_set() Funktion, ungültige INI-Änderungsvorgänge sind nicht erfolgreich.

  • Da die Sitzung korrekt verwaltet werden kann (session_start()), teilweise Fehlermeldungen der Stufe E_ERROR werden in die Stufe E_WARNING konvertiert.

  • Sitzungen werden nicht mehr mit ungültigen und nutzlosen Sitzungen initialisiert

  • Wenn die Header-Informationen gesendet wurden, ist das Festlegen des neuen INI-Werts zu diesem Zeitpunkt ungültig (über session_name(), session_module_name(), session_save_path(), session_cache_limiter() und session_cache_expire() Diese Funktionen).

    Diese korrekten Verhaltensweisen wirken sich jetzt auf den Status von Verwaltungssitzungen im CLI-Befehlszeilenmodus aus. Durch die Verwendung der Ausgabepufferung wie in Webanwendungen wird das Problem mit CLI-Skripten gelöst.

Standard

Seit Version 7.1 , Auf einer 64-Bit-Maschine kann die Reihenfolge der von

mt_rand() und rand() generierten Zufallszahlen des gleichen Startwerts sein anders sein.

2. Neue Funktionen

Kern

  • Beim Überschreiben einer Methode oder Schnittstelle wird der Parametertyp weggelassen. Dies gehorcht der Kontravarianz des Parametertyps des Liskov-Gleichgewichtsprinzips.

  • Ermöglicht der geerbten abstrakten Klasse, die abstrakte Methode der geerbten abstrakten Klasse zu überschreiben.

  • Ermöglicht nachgestellte Kommas zum Gruppieren von Namespaces.

  • Objekttypanmerkungen sind zulässig. Implementierung Unterstützung für LMDB-Backend hinzugefügt.

JSON

  • in

    json_encode()
und

json_decode() Unterstützung für

JSON_INVALID_IGNORE
  • und >

    JSON_INVALTD_UTF8_SUBSTITUTE Unterstützung, die den vorherigen UTF-8-codierten ungültigen Typ ersetzt. OCI8Hinzugefügt Bietet Unterstützung für Transparent Application Failover (TAF) der Oracle-Datenbank.

PCRE

  • Hinzugefügt Die interne Option (j) wurde hinzugefügt, um die lokale Option PCRE_DUPNAMES

  • zu ändern. Neue Verschlüsselungserweiterung. Implementierung zum Schreiben von BLOBs.

Standard
  • Wann Beim Kompilieren von PHP mit libargon2 wurde die vereinfachte Passwort-Hashing-API aktualisiert, um Argon2 zu unterstützen.

Windows-Plattform unterstützt die Funktion proc_nice().

  • Zip

Lesen /Verschlüsseltes Archiv schreiben, abhängig von libzip 1.2.0, Neue Methode:

    ZipArchive:: setEncryptionName($name, $method[,$password]); ZipArchive::setEncryptionIndex($index, $method[ , $ Passwort]);
  • Neue Konstanten: ZipArchive:: EM_NONE ZipArchive:: EM_AES_128 ZipArchive:: EM_AES_192 ZipArchive:: EM_AES_2 56

Akzeptiert „Passwort“ aus dem Zip-Stream-Kontext.

  • ZipArchive implementiert die Zählbarkeit und fügt die Methode ZipArchive::count() hinzu.

  • 3. SAPI-Moduländerungen

4 >

Die folgenden Funktionen werden in der PHP8.0-Version nicht mehr unterstützt.

  • KernFehler in der Konfigurationsdatei werden verfolgt Verlassen werden.

  • __autoload()

    wird veraltet sein, verwenden Sie
  • spl_autoload_register()

    stattdessen.

(unscharf)

wird nicht mehr unterstützt. Diese Änderung hat keine Auswirkungen auf unscharf (. $var)

Sprachstruktur.

create_function()

Die Funktion wird veraltet sein und stattdessen eine anonyme Funktion verwenden.

  • each()

    Funktionsstruktur wird veraltet sein, verwenden Sie foreach()

    Schleife stattdessen.
  • Exif

  • read_exif_data ()

    wird veraltet sein, verwenden Sie stattdessen exif_read_data().

  • GD
    • png2wbmp() und jpeg2wbmp() werden veraltet sein.

    GMP

    • gmp_random () wird veraltet sein, verwenden Sie stattdessen gmp_random_bits() oder ().

    Intl

    • INTL_IDNA_VARIANT_2003 wird veraltet sein, verwenden Sie stattdessen INTL_IDNA_VARIANT_UTS46.

    Mbstring

    • mbstring Die Konfigurationsdatei von .func_overload wird verworfen.

    Standard

    • Nr Zum Aufrufen von parse_str() werden Argumente benötigt, die verworfen werden.

    • Der Aufruf von assert() mit einem String-Argument ist veraltet und stattdessen werden reguläre Ausdrücke verwendet.

    5. Geänderte Funktionen

    Standard

    • Bei Einstellung auf PASSWORD_ARGON2I, password_hash() kann Argon2-Hashes generieren.

    • Bei Verwendung von PASSWORD_ARGON2I können die folgenden Optionen standardmäßig eingestellt sein: memory_cost ,Zeitkosten. Der Standardwert für diese Optionen ist PASSWORD_ARGON2_DEFAULT_MEMORY_COST. Wenn nicht festgelegt, sind die Standardeinstellungen PASSWORD_ARGON2_DEFAULT_TIME_COST und PASSWORD_ARGON2_DEFAULT_THREADS.

    • password_verify() kann Argon2-Hashes überprüfen.

    • password_get_info() und password_needs_rehash() können Akzeptiert Argon2-Hashes.

    • mail()/mb_send_mail()Array akzeptieren$extra_header . Array-Parameter werden anhand von RFC 2822 überprüft. Array-Format: php $extra_headers = [ 'Header-Name' => 'Header-Wert', 'Multiple' => FirstLinern SecondLine", ];

    • Wenn ein ungültiger Parameter übergeben wird, count()Die Funktion gibt eine Warnmeldung aus.

    • In Big-Endian- und Little-Endian-Bytereihenfolge, pack() und unpack() unterstützt Float- und Double-Typen.

    • number_format()Die Funktion stellt sicher, dass der Nullwert kein negatives Vorzeichen enthält.

    XML

    • utf8_encode Die Funktionen () und utf8_decode() wurden als Strings in die Standarderweiterung verschoben.

    6. Neue Funktionen

    Kern

    • stream_istty() hinzugefügt.

    • Hinzugefügt sapi_windows_vt100_support().

    DOM

    • DomNodeList implementiert Countable und fügt DomNodeList::count() hinzu.

    • DOMNamedNodeMap implementiert Countable und fügt DOMNamedNodeMap::count() hinzu.

    FTP

    • Hinzugefügt ftp_append().

    GD

    • Hinzugefügt imagesetclip() und imagegetclip().

    • imageopenpolygon() hinzugefügt.

    • imageresolution() hinzugefügt.

    • imagecreatefrombmp() und imagebmp( ) hinzugefügt .

    Hash

    • Hinzugefügt hash_hmac_algos().

    Mbstring

    • hinzugefügt mb_chr() und mb_ord().

    • mb_scrub hinzugefügt.

    OCI8

    • Hinzugefügt oci_register_taf_callback() und oci_unregister_taf_callback() Unterstützung für Transparent Application Failover (TAF) von Oracle-Datenbanken hinzugefügt.

    Steckdosen

    • hinzugefügt socket_addrinfo_lookup(), socket_addrinfo_connect(), socket_addrinfo_bind() und socket_addrinfo_explain().

    SPL

    • Hinzugefügt spl_object_id().

    7. Neue Klassen und Schnittstellen

    8 Erweiterungen und SAPI >Die veraltete mcrypt-Erweiterung wurde nach PECL verschoben.

    libmcrypt wurde seit 2007 nicht mehr gepflegt und es wird nicht empfohlen, diese Erweiterung weiterhin zu verwenden.

    • 9. Weitere Änderungen an Erweiterungen

    • EXIF

    Exif-Tag-Unterstützung für die folgenden Formate hinzugefügt: Samsung, DJI, Panasonic, Sony, Pentax, Minolta, Sigma/Foveon, AGFA, Kyocera, Ricoh und Epson.

    exif_read_data()

      und
    • exif_t humbnail() Unterstützt die Übergabe von Streams als erstes Argument.

    • GDUmzug Zusätzlich zur Konfigurationsoption

    • --enable-gd-native-ttf

    .

    • imagegd()Speichert das Echtfarbenbild als Echtfarbenbild und ersetzt die vorherige Konvertierung in eine Farbkorrekturplatte . Beim Kompilieren mit System libgd wird auch

    • mageantialias()
    • unterstützt.

      Mbstring
    • mb_check_encoding ()

    • akzeptiert ein Array-Argument und überprüft rekursiv seine Schlüssel und Werte.

      mb_convert_encoding()
    • Akzeptiert einen Array-Parameter, die Kodierung seines Werts kann rekursiv konvertiert werden.

    PDO_OCI

    • --with-pdo-oci Die Konfigurationssyntax von ist für Oracle-Clients nicht mehr verfügbar. Verwenden Sie

      sqlite3_prepare_v2()
    und

    sqlite3_close_v2(), um ihre vorherigen Funktionen zu ersetzen.

    • 10. Neue globale KonstantenKern

    PHP_FLOAT_DIG

    PHP_FLOAT_EPSILON

    • PHP_FLOAT_MIN

      PHP_FLOAT_MAX
    • PHP_OS_FAMILY
    • Dateiinfo
    • 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. Änderungen in der INI-Dateiverarbeitung
    • sql.safe_mode

    Diese INI-Option wurde entfernt.

    realpath_cache_size

    • Standard Es ist 4096k.

    opcache.fast_shutdown

    • Diese INI-Option wurde entfernt. Eine Variante des Fast_shutdown-Handlings wurde in den PHP-Kernel integriert und wird in Produktionsumgebungen standardmäßig aktiviert.

    12. Windows-Unterstützung

    • Unterstützt den VT100-Konsolenmodus.

    13. Weitere Änderungen

    • Zusammenstellungssystem

    Die minimal unterstützte Version von Autoconf ist 2.64.

    Verwandte Empfehlungen: Wie installiere ich IIS, MySQ, Nginx, PHP7.1.7 unter Win10?

    • Einführung in neue Funktionen in PHP7Detaillierte Erklärung des Schlüssels zur Verdoppelung der Leistung von PHP7

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn