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.
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
MerkmalsObjekt
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:gibt 0,5 statt 1 zurück.
Hashhash_hmac (), hash_hmac_file(),
hash_pbkdf2()hash_init() (wenn der Optionsparameter
HASH_HMACJSONWann 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
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 vonmt_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()json_decode() Unterstützung für
JSON_INVALID_IGNOREJSON_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
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:
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
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 Siestattdessen.
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.
Funktionsstruktur wird veraltet sein, verwenden Sie foreach()
Schleife stattdessen.Exif
wird veraltet sein, verwenden Sie stattdessen exif_read_data().
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-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() exif_t humbnail() Unterstützt die Übergabe von Streams als erstes Argument. GDUmzug Zusätzlich zur Konfigurationsoption . imagegd()Speichert das Echtfarbenbild als Echtfarbenbild und ersetzt die vorherige Konvertierung in eine Farbkorrekturplatte . Beim Kompilieren mit System libgd wird auch unterstützt. mb_check_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_close_v2(), um ihre vorherigen Funktionen zu ersetzen. 10. Neue globale KonstantenKern PHP_FLOAT_DIG PHP_FLOAT_EPSILON PHP_FLOAT_MAX PHP_OS_FAMILY 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_ARGON2I 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
und
mb_convert_encoding()
und