Sonstige Änderungen
PHP-Kern
Set(raw)cookie akzeptiert den Parameter $option
Die Funktionen setcookie() und setrawcookie() unterstützen nun auch die folgende Signatur:
wobei$options
ein assoziatives Array ist, das die
folgenden Schlüssel haben kann: "expires"
,
"path"
, "domain"
,
"secure"
, "httponly"
und
"samesite"
.
Neue INI-Direktiven für Syslog
Die folgenden INI-Direktiven wurden hinzugefügt, um die Protokollierung
anzupassen, wenn error_log auf
syslog
gesetzt ist:
- syslog.facility
- Gibt an, welche Art von Programm die Nachricht protokolliert.
- syslog.filter
-
Gibt den Filtertyp zum Filtern der protokollierten Nachrichten an. Die
unterstützten Filtertypen sind
all
,no-ctrl
undascii
. Seit PHP 7.3.8 steht außerdemraw
zur Verfügung und stellt das Verhalten von syslog aus früheren PHP-Versionen wieder her. Dieser Filter wirkt sich auch auf Aufrufe von syslog() aus. - syslog.ident
- Gibt die ident-Zeichenkette an, die jeder Meldung vorangestellt wird.
Garbage-Collection
Die zyklische GC wurde verbessert, was zu erheblichen Leistungsverbesserungen führen kann.
Verschiedenes
Die Funktion var_export() exportiert
stdClass-Objekte nun als Array, das in ein Objekt
umgewandelt wird ((object) array( ... )
), anstatt die nicht
existierende Methode stdClass::__setState() zu
verwenden.
Die Funktion debug_zval_dump() wurde geändert, um rekursive Arrays und Objekte auf die gleiche Weise anzuzeigen wie var_dump(). Damit werden sie nun nicht mehr doppelt angezeigt.
Die Funktionen array_push() und array_unshift() können nun auch mit einem einzigen Parameter aufgerufen werden. Dies ist besonders nützlich in Verbindung mit dem Spread-Operator (Zerlegungsoperator).
Interaktiver PHP-Debugger
Die nicht verwendeten Konstanten PHPDBG_FILE
,
PHPDBG_METHOD
, PHPDBG_LINENO
und
PHPDBG_FUNC
wurden entfernt.
FastCGI-Prozessmanager (FPM)
Die Funktion getallheaders() ist nun ebenfalls verfügbar.
Client-URL-Bibliothek (cURL)
libcurl ≥ 7.15.5 ist nun erforderlich.
Datenfilterung
Der Filter FILTER_VALIDATE_FLOAT
unterstützt nun auch
die Option thousand
, die die erlaubten
Tausendertrennzeichen definiert. Die Voreinstellung ("',."
)
ist vollständig abwärtskompatibel mit früheren PHP-Versionen.
Der Filter FILTER_SANITIZE_ADD_SLASHES
wurde als Alias
des magic_quotes
-Filters
(FILTER_SANITIZE_MAGIC_QUOTES
) hinzugefügt. Der
magic_quotes
-Filter wird voraussichtlich in zukünftigen
PHP-Versionen entfernt.
FTP
Der Standard-Übertragungsmodus ist nun binary
.
Funktionen für die Internationalisierung
Die Konstante Normalizer::NONE
ist veraltet, wenn PHP
mit einer ICU-Version ≥ 56 kompiliert wurde.
Bei der Methode Normalizer::normalize() wurde die
Konstante Normalizer::FORM_KC_CF
als Parameter für die
NFKC_Casefold
-Normalisierung hinzugefügt; sie ist
verfügbar mit ICU ≥ 56.
JavaScript Object Notation (JSON)
Das neue Flag JSON_THROW_ON_ERROR
wurde hinzugefügt,
das in den Funktionen json_decode() und
json_encode() verwendet werden kann. Es bewirkt, dass
diese Funktionen bei einem Fehler die neue
JsonException auslösen, anstatt den globalen
Fehlerstatus zu setzen, der mit json_last_error() und
json_last_error_msg() abgerufen wird.
JSON_PARTIAL_OUTPUT_ON_ERROR
hat Vorrang vor
JSON_THROW_ON_ERROR
.
Multibyte-Zeichenketten
Die Konfigurationsoption --with-libmbfl ist nicht mehr verfügbar.
ODBC (Unified)
Die Unterstützung für ODBCRouter
und
Birdstep
einschließlich der INI-Direktive
birdstep.max_links
wurde entfernt.
OPcache
Die INI-Direktive opcache.inherited_hack
wurde entfernt.
Der Wert wurde bereits seit PHP 5.3.0 ignoriert.
OpenSSL
Die SSL-Stream-Optionen min_proto_version
und
max_proto_version
sowie die zugehörigen Konstanten für
mögliche TLS-Protokollwerte wurden hinzugefügt.
Reguläre Ausdrücke (Perl-kompatibel)
Die Erweiterung PCRE wurde auf PCRE2 aktualisiert, was zu kleineren Änderungen im Verhalten führen kann (zum Beispiel werden Zeichenbereiche in Klassen nun strenger interpretiert) und die bestehende Syntax für reguläre Ausdrücke erweitert.
Die Funktion preg_quote() maskiert nun auch das
'#'
-Zeichen.
Microsoft SQL Server und Sybase-Funktionen (PDO_DBLIB)
Die Eigenschaft PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS
wurde hinzugefügt, um leere Datensätze automatisch überspringen zu können.
Die Eigenschaft PDO::DBLIB_ATTR_TDS_VERSION
, die die
TDS-Version angibt, wurde hinzugefügt.
DATETIME2-Spalten werden nun genauso behandelt wie DATETIME-Spalten.
SQLite-Funktionen (PDO_SQLITE)
SQLite3-Datenbanken können nun im Nur-Lese-Modus geöffnet werden, indem die
neue Eigenschaft PDO::SQLITE_ATTR_OPEN_FLAGS
auf
PDO::SQLITE_OPEN_READONLY
gesetzt wird.
Handhabung von Sessions
Die Funktion session_set_cookie_params() unterstützt nun auch die folgende Signatur:
wobei$options
ein assoziatives Array ist, das folgende
Schlüssel haben kann: "lifetime"
,
"path"
, "domain"
,
"secure"
, "httponly"
und
"samesite"
. Dementsprechend enthält der Rückgabewert der
Funktion session_get_cookie_params() nun auch ein
Element mit dem Schlüssel "samesite"
. Außerdem wurde die
neue INI-Option session.cookie_samesite
hinzugefügt, um
die Standardeinstellung der SameSite-Direktive für Cookies festzulegen. Ihr
Standardwert ist ""
(die leere Zeichenkette), sodass
keine SameSite-Anweisung gesetzt wird. Dieser Wert kann auf
"Lax"
oder "Strict"
gesetzt werden,
wodurch die entsprechende SameSite-Richtlinie gesetzt wird.
Tidy
PHP mit » tidyp zu kompilieren, wird
nun auch transparent unterstützt. Da tidyp keine API bietet, um das
Veröffentlichungsdatum abzurufen, geben die Funktionen
tidy_get_release() und
tidy::getRelease() in diesem Fall
'unknown'
zurück.
XML-Parser
Wenn die Erweiterung gegen libxml kompiliert wurde, wird der Rückgabewert des Callbacks der Funktion xml_set_external_entity_ref_handler() nicht mehr ignoriert. Zuvor wurde der Rückgabewert ignoriert und das Parsen wurde nie beendet.
Zip
Es wird davon abgeraten, gegen die mit PHP mitgelieferte libzip zu kompilieren, aber es ist dennoch möglich, indem die Option --without-libzip zur Konfiguration hinzugefügt wird.
Komprimierung mit Zlib
Für den compress.zlib-Wrapper wurde die Kontextoption zlib/level hinzugefügt, um die Einstellung der gewünschten Kompressionsstufe zu erleichtern.