Die Verwendung der Option -a ohne die Erweiterung readline führt nun zu einem Fehler. Zuvor hatte -a ohne readline, abgesehen von der zusätzliche Meldung "Interactive mode enabled"
, das gleiche Verhalten wie der Aufruf von php ohne Parameter. Dieser Modus war nicht interaktiv.
Die Fähigkeit, remote zu debuggen, wurde von phpdbg entfernt.
Die Reihenfolge der Eigenschaften, die in foreach, var_dump(), serialize(), Objektvergleichen etc. verwendet werden, wurde geändert. Die Eigenschaften sind jetzt so geordnet, wie sie deklariert und vererbt wurden. Die Eigenschaften, die in einer Basisklasse deklariert sind, stehen vor den Kind-Eigenschaften.
Diese Reihenfolge entspricht dem internen Layout der Eigenschaften in der zend_object
-Struktur und reproduziert die Reihenfolge in default_properties_table[]
und properties_info_table[]
. Die alte Reihenfolge war nicht dokumentiert und wurde durch Implementierungsdetails der Klassenvererbung verursacht.
Das Flag FILTER_FLAG_ALLOW_OCTAL
des Filters FILTER_VALIDATE_INT
akzeptiert nun oktale Zeichenketten mit vorangestelltem Oktalpräfix ("0o"
/"0O"
).
Alle GMP-Funktionen akzeptieren nun oktale Zeichenketten mit vorangestelltem Oktalpräfix ("0o"
/"0O"
).
Die Methode PDO::getAttribute() gibt in Verbindung mit PDO::ATTR_SERVER_INFO
und PDO::ATTR_SERVER_VERSION
nun Werte zurück, anstatt eine PDOException auszulösen.
Die Methoden ReflectionProperty::setAccessible() und ReflectionMethod::setAccessible() haben keine Auswirkung mehr. Bei Eigenschaften und Methoden wird nun immer davon ausgegangen, dass sie über Reflection zugänglich sind.
syslog() ist nun binärsicher.
imagewebp() kann nun durch Übergabe von IMG_WEBP_LOSSLESS
als Qualitätsparameter verlustfreie WebP-Kodierungen durchführen.
Diese Konstante ist nur definiert, wenn die verwendete libgd die verlustfreie WebP-Kodierung unterstützt.
Wenn PHP gegen die Bibliothek libmysqlclient gelinkt wird, sind nun die Funktionen mysqli_stmt::next_result() und mysqli::fetch_all() verfügbar.
Die Erweiterung OpenSSL benötigt nun mindestens die OpenSSL-Version 1.0.2.
OpenSSL 3.0 wird nun unterstützt. Es ist zu beachten, dass viele Verschlüsselungsmethoden nicht mehr standardmäßig aktiviert sind (es handelt sich um einen Teil des Legacy-Anbieters), und dass die Validierung (z. B. minimale Schlüsselgrößen) jetzt strenger ist.
Für Signaturen wird nun standardmäßig SHA256 verwendet.
Die Unterstützung für OpenSSL_SHA256- und OpenSSL_SHA512-Signaturen wurde hinzugefügt.
Für das Sicherheitsprotokoll wurde die Unterstützung für SHA256 und SHA512 hinzugefügt.
--with-password-argon2
verwendet nun pkg-config, um libargon2 zu erkennen. Aus diesem Grund sollte ein alternativer Speicherort für libargon2 nun mittels PKG_CONFIG_PATH angegeben werden.
Die INI-Direktive log_errors_max_len wurde entfernt. Sie hatte seit PHP 8.0.0 keine Wirkung mehr.
Ein vorangestelltes Dollarzeichen in einer Zeichenkette mit Anführungszeichen kann nun maskiert werden: "\${"
wird nun als Zeichenkette mit dem Inhalt ${
interpretiert.
Backslashes in Zeichenketten mit doppelten Anführungszeichen werden nun konsequenter als Maskierungs-Zeichen behandelt. Zuvor galt "foo\"
gefolgt von etwas anderem als einem Zeilenumbruch als unvollständige Zeichenkette. Jetzt wird sie als Zeichenkette mit dem Inhalt foo\
interpretiert. Als Ausnahme wird jedoch die Zeichenkette "foo\"
gefolgt von einem Zeilenumbruch weiterhin als gültige Zeichenkette mit Inhalt foo\
behandelt und nicht als unvollständige Zeichenkette. Diese Ausnahme existiert, um die einfache Verwendungen von Windows-Dateipfaden, z. B. "C:\foo\"
, zu unterstützen.