Neue Features

PHP-Kern

Flexiblere Heredoc- und Nowdoc-Syntax

Auf den schließenden Bezeichner für doc-Zeichenketten muss kein Semikolon oder Zeilenumbruch mehr folgen. Außerdem darf der schließende Bezeichner eingerückt sein; in diesem Fall wird die Einrückung aus allen Zeilen der doc-Zeichenkette entfernt.

Die Destrukturierung (Zerlegung) von Arrays unterstützt Referenzzuweisungen

Die Destrukturierung von Arrays unterstützt nun mithilfe der Syntax [&$a, [$b, &$c]] = $d Referenzzuweisungen. Dies wird auch bei list() unterstützt.

Der Operator instanceof akzeptiert Literale

Der Operator instanceof akzeptiert nun ein Literal als ersten Operanden. In diesem Fall gibt das Ergebnis immer false zurück.

CompileError-Exception anstelle von Kompilierungsfehlern

Es wurde eine neue CompileError-Exception hinzugefügt, von der ParseError erbt. Eine kleine Anzahl von Kompilierungsfehlern löst nun eine CompileError-Exception aus, anstatt einen fatalen Fehler zu erzeugen. Derzeit betrifft dies nur Kompilierungsfehler, die von token_get_all() im Modus TOKEN_PARSE ausgelöst werden können, aber in Zukunft könnten weitere Fehler in diese Exception konvertiert werden.

Komma am Ende von Aufrufen erlaubt

Am Ende von Funktions- und Methodenaufrufen sind nun Kommas erlaubt.

Unterstützung für Argon2id

Mit der Konfigurationsoption --with-password-argon2[=dir] unterstützen die Funktionen password_hash(), password_verify(), password_get_info() und password_needs_rehash() nun Argon2i- und Argon2id-Hashes. Passwörter können gehasht und mit der Konstante PASSWORD_ARGON2ID verifiziert werden. Um die Unterstützung für Argon2i und Argon2id in den password_*()-Funktionen nutzen zu können, muss PHP gegen die libargon2-Referenzbibliothek ≥ 20161029 gelinkt sein.

FastCGI-Prozessmanager (FPM)

Es wurden neue Optionen zur Anpassung der FPM-Protokollierung hinzugefügt:

log_limit
Diese globale Option wird verwendet, um die maximale Textlänge für die Protokollierung festzulegen, sodass es möglich ist, mehr als 1024 Zeichen ohne Zeilenumbrüche zu protokollieren. Dadurch werden auch verschiedene Probleme mit Zeilenumbrüchen behoben.
log_buffering
Diese globale Option ermöglicht eine experimentelle Protokollierung ohne zusätzliche Pufferung.
decorate_workers_output
Wenn catch_workers_output aktiviert ist, kann diese Pool-Option verwendet werden, um die Dekoration der Worker-Ausgabe zu deaktivieren.

BCMath-Funktionen

Die Funktion bcscale() kann nun auch als "Getter" verwendet werden, um die aktuell verwendete Genauigkeit abzurufen.

Lightweight Directory Access Protocol (LDAP)

Die LDAP-Abfragefunktionen und die Funktion ldap_parse_result() unterstützen nun sämtliche Steuerelemente von LDAP:

Multibyte-Zeichenketten-Funktionen

Vollständige Unterstützung für Case-Mapping und Case-Folding

Die Unterstützung für die vollständige Umwandlung und den Vergleich von Groß- und Kleinschreibung wurde hinzugefügt. Im Gegensatz zur einfachen Umwandlung der Groß-/Kleinschreibung kann die vollständige Umwandlung die Länge der Zeichenkette ändern. Zum Beispiel:

<?php
mb_strtoupper
("Straße");
// Ergibt in PHP 7.2 STRAßE
// Ergibt in PHP 7.3 STRASSE
?>
In mb_convert_case() stehen verschiedene Modi für die Umwandlung und zum Vergleich von Groß- und Kleinschreibung zur Verfügung:
  • MB_CASE_LOWER (wird verwendet von mb_strtolower())
  • MB_CASE_UPPER (wird verwendet von mb_strtoupper())
  • MB_CASE_TITLE
  • MB_CASE_FOLD
  • MB_CASE_LOWER_SIMPLE
  • MB_CASE_UPPER_SIMPLE
  • MB_CASE_TITLE_SIMPLE
  • MB_CASE_FOLD_SIMPLE (wird bei Operationen verwendet, die Groß- und Kleinschreibung nicht berücksichtigen)
Es wird nur uneingeschränktes und sprachunabhängiges vollständiges Case-Mapping durchgeführt.

Operationen, die Groß-/Kleinschreibung nicht berücksichtigen, verwenden Case-Folding

Bei Operationen mit Zeichenketten, die die Groß-/Kleinschreibung nicht berücksichtigen, wird nun Case-Folding anstelle von Case-Mapping verwendet. Das bedeutet, dass mehr Zeichen als gleich (ohne Berücksichtigung der Groß-/Kleinschreibung) angesehen werden.

MB_CASE_TITLE führt eine Title-Case-Umwandlung durch

mb_convert_case() führt in Verbindung mit MB_CASE_TITLE nun eine Title-Case-Umwandlung durch, die auf den von Cased und CaseIgnorable abgeleiteten Unicode-Eigenschaften basiert. Diese Änderung verbessert insbesondere auch die Behandlung von Anführungszeichen und Apostrophen.

Unterstützung für Unicode 11

Die Datentabellen für Multibyte-Zeichenketten wurden aktualisiert, um Unicode 11 zu unterstützen.

Unterstützung für lange Zeichenketten

Die Funktionen für Multibyte-Zeichenketten unterstützen nun auch Zeichenketten, die größer als 2GB sind.

Verbesserung der Leistung

Die Leistung der Erweiterung Multibyte-Zeichenketten wurde in allen Bereichen erheblich verbessert. Die größten Verbesserungen betreffen die Funktionen zur Umwandlung der Groß-/Kleinschreibung.

Unterstützung für benannte Übereinstimmungen

Die mb_ereg_*-Funktionen unterstützen nun benannte Übereinstimmungen. Funktionen, die wie mb_ereg() nach Übereinstimmungen suchen, geben nun ähnlich wie die Funktionen bei PCRE benannte Übereinstimmungen zurück, indem sie sowohl ihre Gruppennummern als auch ihre Namen verwenden:

<?php
mb_ereg
('(?<word>\w+)''国'$matches);
// => [0 => "国", 1 => "国", "word" => "国"];
?>
Außerdem unterstützt mb_ereg_replace() nun die Notationen \k<> und \k'', um benannte Übereinstimmungen in der Ersetzungszeichenkette zu referenzieren:
<?php
mb_ereg_replace
('\s*(?<word>\w+)\s*'"_\k<word>_\k'word'_"' foo ');
// => "_foo_foo_"
?>
\k<> und \k'' können auch für numerische Verweise verwendet werden, was auch mit Gruppennummern funktioniert, die größer als 9 sind.

Readline

Bei der Funktion readline_info() wurde die Unterstützung für die Optionen completion_append_character und completion_suppress_append hinzugefügt. Diese Optionen sind nur verfügbar, wenn PHP gegen libreadline (statt libedit) gelinkt ist.

Hier Kannst Du einen Kommentar verfassen


Bitte gib mindestens 10 Zeichen ein.
Wird geladen... Bitte warte.
* Pflichtangabe
Es sind noch keine Kommentare vorhanden.

PHP cURL-Tutorial: Verwendung von cURL zum Durchführen von HTTP-Anfragen

cURL ist eine leistungsstarke PHP-Erweiterung, die es Ihnen ermöglicht, mit verschiedenen Servern über verschiedene Protokolle wie HTTP, HTTPS, FTP und mehr zu kommunizieren. ...

TheMax

Autor : TheMax
Kategorie: PHP-Tutorials

Midjourney Tutorial - Anleitung für Anfänger

Über Midjourney, dem Tool zur Erstellung digitaler Bilder mithilfe von künstlicher Intelligenz, gibt es ein informatives Video mit dem Titel "Midjourney Tutorial auf Deutsch - Anleitung für Anfänger" ...

Mike94

Autor : Mike94
Kategorie: KI Tutorials

Grundlagen von Views in MySQL

Views in einer MySQL-Datenbank bieten die Möglichkeit, eine virtuelle Tabelle basierend auf dem Ergebnis einer SQL-Abfrage zu erstellen. ...

admin

Autor : admin
Kategorie: mySQL-Tutorials

Tutorial veröffentlichen

Tutorial veröffentlichen

Teile Dein Wissen mit anderen Entwicklern weltweit

Du bist Profi in deinem Bereich und möchtest dein Wissen teilen, dann melde dich jetzt an und teile es mit unserer PHP-Community

mehr erfahren

Tutorial veröffentlichen

Notizen-App: was ist eure - ich komm immer wieder auf Keep zurück...

Hallo liebe Community, guten Abend, Notizen-App: was ist eure - ich komm immer wieder auf Keep zurück... was ist eure beste NoteTaking App!? i ...

Geschrieben von dhubs am 22.12.2024 23:05:11
Forum: Off-Topic Diskussionen
How to overcome Safari's iframe cookie block?

To overcome Safari's iframe cookie block, you can use the SameSite=None; Secure cookie attribute in conjunction with a third-party domain that sup ...

Geschrieben von Joniemartinez am 21.12.2024 13:28:24
Forum: HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS
Probleme mit speichern in Datenbank in französisch

Les erreurs fréquentes lors de l'enregistrement de données dans une base de données incluent des problèmes de connexion, des erreurs de syntax ...

Geschrieben von Alice12 am 18.12.2024 05:07:21
Forum: PHP Developer Forum
Gibt es eine API zum Abrufen von PHP-Code-Referenzen?

PHP.net bietet eine umfassende Online-Dokumentation für PHP. Es gibt keine offizielle API zum Abrufen von PHP-Dokumentationen direkt, aber du kan ...

Geschrieben von Alice12 am 18.12.2024 05:03:27
Forum: PHP Developer Forum