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

Ein data POST via Curl funktioniert nicht.

Anmorg93 Respekt, du bist ja nur um rund 10 Jahre zu spät dran.

Geschrieben von scatello am 21.11.2024 10:57:00
Forum: PHP Developer Forum
Ein data POST via Curl funktioniert nicht.

Hey, hatte auch mal das Problem. Oft liegt’s an fehlenden oder falschen Headern. Probier mal:​ $ch = curl_init(); curl_setopt($ch, CURLOPT_UR ...

Geschrieben von Anmorg93 am 21.11.2024 10:48:17
Forum: PHP Developer Forum
Probleme mit einem Linux-Befehl...

guten Tag liebe Community ;) hallo liebe Freunde auf der php-Ressource, hoffe, das landet im richtigen Unterforum also, womit ich im Moment zu ...

Geschrieben von dhubs am 15.11.2024 16:21:52
Forum: Off-Topic Diskussionen
ein .htaccess-File für eine WordPress-Installation - wie gehe ich hier vor.?

hallo und guten Tag, wie lege ich denn einen .htaccess für eine WordPress-Installation an - wie gehe ich hier vor. Kann man das denn so mache ...

Geschrieben von dhubs am 13.11.2024 15:52:54
Forum: Webmaster