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"
. Die folgenden INI-Direktiven wurden hinzugefügt, um die Protokollierung anzupassen, wenn error_log auf syslog
gesetzt ist:
all
, no-ctrl
und ascii
. Seit PHP 7.3.8 steht außerdem raw
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. Die zyklische GC wurde verbessert, was zu erheblichen Leistungsverbesserungen führen kann.
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).
Die nicht verwendeten Konstanten PHPDBG_FILE
, PHPDBG_METHOD
, PHPDBG_LINENO
und PHPDBG_FUNC
wurden entfernt.
Die Funktion getallheaders() ist nun ebenfalls verfügbar.
libcurl ≥ 7.15.5 ist nun erforderlich.
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.
Der Standard-Übertragungsmodus ist nun binary
.
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.
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
.
Die Konfigurationsoption --with-libmbfl ist nicht mehr verfügbar.
Die Unterstützung für ODBCRouter
und Birdstep
einschließlich der INI-Direktive birdstep.max_links
wurde entfernt.
Die INI-Direktive opcache.inherited_hack
wurde entfernt. Der Wert wurde bereits seit PHP 5.3.0 ignoriert.
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.
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.
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.
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.
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. 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.
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.
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.
Für den compress.zlib-Wrapper wurde die Kontextoption zlib/level hinzugefügt, um die Einstellung der gewünschten Kompressionsstufe zu erleichtern.